У меня есть набор данных в JSON и с использованием библиотеки C# JSON.net. Я пытаюсь прочитать данные как конкатенированную строку, но у вас проблемы с извлечением данных. Данные имеют корневой элемент, затем строки. Для каждой строки в «строках» я хочу вывести список значений ["conversionPathValue"] ["nodeValue"] и объединить их вместе, а затем объединить их с значениями primitiveValue. Пример кода из 2-х строк ниже:Прочитайте JSON с помощью JSON.net C# с вложенными массивами
"rows": [
[
{
"conversionPathValue": [
{
"interactionType": "CLICK",
"nodeValue": "MET"
}
]
},
{
"primitiveValue": "20130122"
},
{
"primitiveValue": "000"
},
{
"primitiveValue": "000001"
},
{
"primitiveValue": "000"
},
{
"primitiveValue": "11"
},
{
"primitiveValue": "7290.521799"
}
],
[
{
"conversionPathValue": [
{
"interactionType": "CLICK",
"nodeValue": "MET"
},
{
"interactionType": "CLICK",
"nodeValue": "MET"
},
{
"interactionType": "CLICK",
"nodeValue": "MET"
},
{
"interactionType": "CLICK",
"nodeValue": "MET"
},
{
"interactionType": "CLICK",
"nodeValue": "MET"
},
{
"interactionType": "CLICK",
"nodeValue": "MET"
},
{
"interactionType": "CLICK",
"nodeValue": "MET"
},
{
"interactionType": "CLICK",
"nodeValue": "MET"
},
{
"nodeValue": "(none)"
},
{
"nodeValue": "(none)"
},
{
"interactionType": "CLICK",
"nodeValue": "organic"
}
]
},
{
"primitiveValue": "20130122"
},
{
"primitiveValue": "000"
},
{
"primitiveValue": "000011"
},
{
"primitiveValue": "005"
},
{
"primitiveValue": "1"
},
{
"primitiveValue": "1628.0"
}
],
.....etc........
, используя следующий код: (jsonExtract является JObject)
var rows = jsonExtract["root"]["rows"][0].Children();
foreach (JToken result in rows)
{
var primitiveValues = result["primitiveValue"].Values<string>();
var pathValues = result["conversionPathValue"].Values<string>();
string joinedprimitiveValues = string.Join(",", primitiveValues);
string joinedpathValues = string.Join("-", pathValues);
file2.WriteLine(joinedpathValues + ", " + joinedprimitiveValues);
}
Это дает ошибку «объекта не задана ссылка на экземпляр объекта "при настройке primitiveValues.
Я знаю, что проблема, вероятно, связана с вложенными элементами, но я не знаю, как их обслуживать. Может ли кто-нибудь помочь, пожалуйста?
Это раздувает меня по следующей строке: var primitiveValue = value ["primitiveValue"]; «Невозможно получить доступ к дочернему значению на Newtonsoft.Json.Linq.JProperty». – wloescher
@wloescher Как выглядит JSON? Похоже, эта ошибка исходит от попытки доступа к ребенку, когда у вас есть свойство. –
Я получаю ту же ошибку в том же месте –