C# 使用json.net反序列化json数组
我有一个json字符串,如下所示:C# 使用json.net反序列化json数组,c#,json,json.net,C#,Json,Json.net,我有一个json字符串,如下所示: { "documents": [ { "name": "20200809/1", "fields": { "details": { "stringValue": "bad" }, "paid": {
{
"documents": [
{
"name": "20200809/1",
"fields": {
"details": {
"stringValue": "bad"
},
"paid": {
"stringValue": "yes"
}
}
},
{
"name": "20200809/4",
"fields": {
"details": {
"stringValue": "good"
},
"paid": {
"stringValue": "no"
}
}
}
]
}
对我来说重要的字符串是name
、details
和paid
。当我从服务器检索信息时,它是这样的json
我使用JSON.net(JsonConvert
)进行反序列化,但我认为我做得不对。如何从这个json获取name
和details
List<object> json = JsonConvert.DeserializeObject<List<object>>(jsonString);
Dictionary<string, object> dict = json[0] as Dictionary<string, object>;
//get name
string name = dict["name"] as string;
List json=JsonConvert.DeserializeObject(jsonString);
Dictionary dict=json[0]作为字典;
//得名
string name=dict[“name”]作为字符串;
它给了我:
无法反序列化当前JSON对象,因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化
JSON表示的完整对象是一个
字典
——您必须解析整个结构并使用map/collect循环来获取所需的特定键,或者可以使用JSON路径
由JSON表示的完整对象是一个字典
——您必须解析整个结构并使用map/collect循环来获取所需的特定键,或者可以使用JSON路径数组以[
开头,对象以开头{
-猜猜你在这里有什么你可以阅读文档,所以开始的对象是一个字典
?不知怎的…但这并没有多大帮助。尝试“感觉”它有什么不好的地方。如果你不想为该json构建类结构,那么请使用json路径。请随意发布使用JObject
作为答案,我很乐意接受。使用它解决了问题:)谢谢。数组以[
开头,对象以开头{
-猜猜你在这里有什么你可以阅读文档,所以开始的对象是一个字典
?不知怎的…但这并没有多大帮助。尝试“感觉”它有什么不好的地方。如果你不想为该json构建类结构,那么请使用json路径。请随意发布使用JObject
作为答案,我很乐意接受。使用它解决了问题:)谢谢。
string jsonString = "{'documents':[{'name':'20200809/1','fields':{'details':{'stringValue':'bad'},'paid':{'stringValue':'yes'}}},{'name':'20200809/4','fields':{'details':{'stringValue':'good'},'paid':{'stringValue':'no'}}}]}";
//Note: You must convert to JObject
var jsonObject = JObject.Parse(jsonString);
//Note: And get documents object get zero index and "name" key and fixed!
var jsonMemberName = jsonObject["documents"][0]["name"].ToString();