C# 如何将包含数组的字符串转换为c中的数组#

C# 如何将包含数组的字符串转换为c中的数组#,c#,arrays,json,json.net,C#,Arrays,Json,Json.net,我有一个字符串,里面有一个Json数组 "[{'firstname':'john','lastname':'doe'},{'firstname':'mary','lastname':'jane'}]" 如何将其转换为json的字符串数组 例如,上面的内容将是 ["{'firstname':'john','lastname':'doe'}","{'firstname':'mary','lastname':'jane'}"] 然后我可以在数组的每个元素上使用JObject.Parse从jso

我有一个字符串,里面有一个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,对吗?您真的需要字符串的中间数组吗?如果没有,只需使用一次性解析JSON即可

如果数组中的元素都表示相同的类型,并且您希望转换它们,则可以使用以下命令将它们全部转换为强类型数组:

Person[]people=JArray.Parse(json.Values().ToArray();

您提到了
JObject.Parse
,所以您使用的是Json.NET,对吗?您真的需要字符串的中间数组吗?如果没有,只需使用一次性解析JSON即可

如果数组中的元素都表示相同的类型,并且您希望转换它们,则可以使用以下命令将它们全部转换为强类型数组:

Person[]people=JArray.Parse(json.Values().ToArray();
string jsonString=“[{'firstname':'john','lastname':'doe'},{'firstname':'mary','lastname':'jane'}]”;
字符串[]JSONSTRINGRAY=JsonConvert.DeserializeObject(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);
班级人员
{
公共字符串名{get;set;}
公共字符串lastname{get;set;}
}
...
string jsonString=“[{'firstname':'john','lastname':'doe'},{'firstname':'mary','lastname':'jane'}]”;
Person[]personArray=JsonConvert.DeserializeObject(jsonString);
string jsonString=“[{'firstname':'john','lastname':'doe'},{'firstname':'mary','lastname':'jane'}]”;
字符串[]JSONSTRINGRAY=JsonConvert.DeserializeObject(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);
班级人员
{
公共字符串名{get;set;}
公共字符串lastname{get;set;}
}
...
string jsonString=“[{'firstname':'john','lastname':'doe'},{'firstname':'mary','lastname':'jane'}]”;
Person[]personArray=JsonConvert.DeserializeObject(jsonString);

假设您的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
}

假设您的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
}

按字符分割Stroug。那么第一个字符串就是您的json?或者是json中的字符串?不太清楚。如果是json,您应该能够将其反序列化为数组。您尝试实现自己的解决方案了吗?而且字符串(或其内容)不能是json,因为它使用单引号而不是双引号。@deathismyfriend:手工处理json是浪费时间。有很多库可以做到这一点。按字符分割Stroug。那么第一个字符串就是json?或者是json中的字符串?不太清楚。如果是json,您应该能够将其反序列化为数组。您尝试实现自己的解决方案了吗?而且字符串(或其内容)不能是json,因为它使用单引号而不是双引号。@deathismyfriend:手工处理json是浪费时间。有很多图书馆可以做到这一点。