c# 读取json的问题,JObject不能强转成JArray
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 读取json的问题,JObject不能强转成JArray相关的知识,希望对你有一定的参考价值。
using Newtonsoft.Json.Linq;
JArray ja = (JArray)JsonConvert.DeserializeObject(reader[1].ToString());
我的Framewor是2.0用的是第三方库Newtonsoft.Json.dll
编译没问题,运行报错
无法将类型为“Newtonsoft.Json.Linq.JObject”的对象强制转换为类型“Newtonsoft.Json.Linq.JArray”。
将
JArray ja = (JArray)JsonConvert.DeserializeObject(reader[1].ToString());
换成
dynamic ja = JsonConvert.DeserializeObject(reader[1].ToString());追问
我的Framewor是2.0.你说的这个要4.0以上才能引用到
C# NEWTONSOFT.JSON读取json文件
public static void Readjson()
{
string jsonfile = "D://tsconfig1.json";
using (System.IO.StreamReader file = System.IO.File.OpenText(jsonfile))
{
using (JsonTextReader reader = new JsonTextReader(file))
{
JObject o = (JObject)JToken.ReadFrom(reader);
string a = o["lotname"].ToString();
var b = o["other"];
var c = b["lotaddress"];
var d = o["devices"];
foreach(JObject e in d)
{
var deviceID = e["deviceID"];
var name = e["name"];
var IP = e["IP"];
}
}
}
}
tsconfig1.json文件内容
{
"lotname": "停车系统",
"devices": [
{
"deviceID": "EI1001",
"name": "东道进口相机",
"type": "进口",
"IP": "192.168.1.100"
},
{
"deviceID": "EI1002",
"name": "东道进口语音屏",
"type": "进口",
"IP": "192.168.1.102"
},
{
"deviceID": "EO1003",
"name": "东道出口相机",
"type": "出口",
"IP": "192.168.1.103"
},
{
"deviceID": "EO1004",
"name": "东道出口语音屏",
"type": "出口",
"IP": "192.168.1.104"
}
],
"other": { "lotname": "wz001", "lotaddress": "wenzhou" }
}
注意:记事本另存为 以上内容时编码选择 U-TF8
以上是关于c# 读取json的问题,JObject不能强转成JArray的主要内容,如果未能解决你的问题,请参考以下文章