我有一个带有Json数组的字符串
"[{'firstname':'john','lastname':'doe'},{'firstname':'mary','lastname':'jane'}]"
如何将其转换为json的字符串数组?
例如上面的内容是
["{'firstname':'john','lastname':'doe'}","{'firstname':'mary','lastname':'jane'}"]
然后,我可以在数组的每个元素上使用JObject.Parse来从json生成JObject。
答案 0 :(得分:3)
你提到JObject.Parse
,所以你正在使用Json.NET,对吧?你真的需要中间字符串数组吗?如果没有,只需使用JArray.Parse
一次解析JSON。
如果数组中的元素都表示相同类型并且您想要转换它们,则可以使用Values<T>()
将它们全部转换为强类型数组:
Person[] people = JArray.Parse(json).Values<Person>().ToArray();
答案 1 :(得分:1)
假设您的JSON位于字符串变量populating
中,获取JSON字符串数组的最短方法是:
json
然而,获得JArray.Parse(json).Select(o => JsonConvert.SerializeObject(o)).ToArray();
的最快方法是
JObject
答案 2 :(得分:0)
string jsonString = "[{'firstname':'john','lastname':'doe'},{'firstname':'mary','lastname':'jane'}]";
string[] jsonStringArray = JsonConvert.DeserializeObject<JArray>(jsonString)
.Select(JsonConvert.SerializeObject)
.ToArray();
或者,你可以这样做:
class Person
{
public string firstname { get; set; }
public string lastname { get; set; }
}
...
string jsonString = "[{'firstname':'john','lastname':'doe'},{'firstname':'mary','lastname':'jane'}]";
Person[] personArray = JsonConvert.DeserializeObject<Person[]>(jsonString);