Это часть кода файла Json.C# Ошибка JSon Parser
using (StreamReader streamReader = new StreamReader(tplFile, Encoding.GetEncoding("GB2312")))
{
try
{
new JsonSerializer();
JsonTextReader reader = new JsonTextReader(streamReader);
JObject jObject = JObject.Load(reader);
JToken jToken = jObject["general"];
foreach (JToken current in (IEnumerable<JToken>)jToken)
{
PrintItem item = default(PrintItem);
string text = current.ToString();
if (text.Contains("arryname"))
{
string text2 = current["arryname"].ToString();
item.arryName = text2;
JToken jToken2 = current["value"];
using (IEnumerator<JToken> enumerator2 = ((IEnumerable<JToken>)jToken2).GetEnumerator())
{
while (enumerator2.MoveNext())
{
JToken current2 = enumerator2.Current;
PrintItem item2 = default(PrintItem);
string text3 = current2.ToString();
if (text3.Contains("size"))
{
item2.size = Common.Convert2Int(current2["size"].ToString());
}
if (text3.Contains("format"))
{
item2.format = current2["format"].ToString();
}
if (text3.Contains("value"))
{
item2.value = current2["value"].ToString();
}
if (text3.Contains("align"))
{
item2.align = Common.Convert2Int(current2["align"].ToString());
}
if (text3.Contains("style"))
{
item2.style = Common.Convert2Int(current2["style"].ToString());
}
if (text3.Contains("left"))
{
item2.left = Common.Convert2Int(current2["left"].ToString());
}
if (text2 == "items")
{
this.gtempItemList.arryname.Add(item2);
}
else
{
if (text2 == "pays")
{
this.gtempItemList.pays.Add(item2);
}
}
}
goto IL_376;
}
goto IL_27E;
}
goto IL_27E;
IL_376:
this.gtempItemList.ItemList.Add(item);
continue;
IL_27E:
if (text.Contains("size"))
{
item.size = Common.Convert2Int(current["size"].ToString());
}
if (text.Contains("format"))
{
item.format = current["format"].ToString();
}
if (text.Contains("value"))
{
item.value = current["value"].ToString();
}
if (text.Contains("align"))
{
item.align = Common.Convert2Int(current["align"].ToString());
}
if (text.Contains("style"))
{
item.style = Common.Convert2Int(current["style"].ToString());
}
if (text.Contains("left"))
{
item.left = Common.Convert2Int(current["left"].ToString());
goto IL_376;
}
goto IL_376;
}
}
}
this.Refresh();
}
}
Это мой код.
И
{
"general": {
"arryname": "name1",
"value": {
"size": "10",
"format": "L100"
}
}
}
это мой файл JSON.
Когда код string text2 = current["arryname"].ToString();
работает, ошибка
не удается получить доступ к стоимости ребенка на Newtonsoft.Json.Linq.JProperty.
произошло.
И я не могу найти причину.
Вы делаете 'новый JsonSerializer();' тогда не используйте return. Это выглядит неправильно. – dbc