如何将包含数组的字符串转换为c#中的数组
本文关键字:数组 转换 字符串 包含 | 更新日期: 2023-09-27 18:04:38
我有一个字符串,在中有一个Json数组
"[{'firstname':'john','lastname':'doe'},{'firstname':'mary','lastname':'jane'}]"
如何将其转换为json的字符串数组?
例如,以上将是
["{'firstname':'john','lastname':'doe'}","{'firstname':'mary','lastname':'jane'}"]
然后,我可以使用JObject.Parse对数组的每个元素进行解析,从json中生成JObject。
您提到JObject.Parse
,所以您使用的是Json.NET,对吧?你真的需要字符串的中间数组吗?如果没有,只需使用JArray.Parse
一次性解析JSON即可。
如果数组中的元素都表示相同的类型,并且您想转换它们,则可以使用Values<T>()
:将它们全部转换为强类型数组
Person[] people = JArray.Parse(json).Values<Person>().ToArray();
假设您的JSON位于字符串变量json
中,获取JSON字符串数组的最短方法是:
JArray.Parse(json).Select(o => JsonConvert.SerializeObject(o)).ToArray();
然而,获得JObject
s的最快方法是
foreach (JObject jObject in JArray.Parse(json)) {
// do something with jObject
}
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);