[英]How do I convert a string containing an array to an array in c#
我里面有一個帶有Json數組的字符串
"[{'firstname':'john','lastname':'doe'},{'firstname':'mary','lastname':'jane'}]"
如何將其轉換為json的字符串數組?
例如,上面是
["{'firstname':'john','lastname':'doe'}","{'firstname':'mary','lastname':'jane'}"]
然后,我可以在數組的每個元素上使用JObject.Parse從json生成JObjects。
您提到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
的最快方法是
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.