相关疑难解决方法(0)

使用DataContractJsonSerializer反序列化变量Type JSON数组

我有一个这种形式的JSON字符串:

string jsonStr = "[\"A\", [\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]"
Run Code Online (Sandbox Code Playgroud)

我试图使用C#.NET反序列化器DataContractJsonSerializer使用以下代码片段反序列化JSON

MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr));
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof<X>);
X data = (X)serializer.ReadObject(ms);
Run Code Online (Sandbox Code Playgroud)

既然JSON数组是一个变量类型数组,我不知道X应该是什么类型的对象

如果我的字符串是

jsonStr = "[[\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]"
Run Code Online (Sandbox Code Playgroud)

我可以用这个:

X = List<List<String>> 
Run Code Online (Sandbox Code Playgroud)

这对我有用.我想知道是否有任何方法可以反序列化变量类型的JSON数组?

c# json json.net

9
推荐指数
1
解决办法
9745
查看次数

Json.NET:序列化/反序列化数组

我正在使用Json.NET库.通过C#在JSON中序列化/反序列化数组最方便的方法是什么?例如,我正在尝试反序列化以下文本(从文件中读取):

{
    "Name": "Christina",
    "Gender": "female",
    "Favorite_numbers": [11, 25 ,23]
}
Run Code Online (Sandbox Code Playgroud)

我正在从文件中读取上面的文本到变量:

JObject o = JObject.Parse(File.ReadAllText("input.txt"))
Run Code Online (Sandbox Code Playgroud)

然后,当我试图用数据提取数组[11, 24, 23]

int[] num = (int[]) o["Favorite_numbers"]
Run Code Online (Sandbox Code Playgroud)

我收到一个错误.

我究竟做错了什么?我如何正确读取数组?如何正确读取以下类型的2-dim数组[[1, 2, 3], [4, 5, 6]]

.net arrays json

6
推荐指数
1
解决办法
9153
查看次数

标签 统计

json ×2

.net ×1

arrays ×1

c# ×1

json.net ×1