簡體   English   中英

如何將包含數組的字符串轉換為C#中的數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM