拆分多个json字符串的字符串

时间:2017-12-28 05:44:05

标签: c# json

我正在尝试拆分一个包含多个json字符串的c#字符串

示例:

{"id":0,"username":"test"}{"id":8,"username":"testuser"}

如何在自己的'foreach'循环中遍历每个json字符串

2 个答案:

答案 0 :(得分:1)

您可以使用Newtonsoft.Json将其反序列化为结构类型数组 要做到这一点,你需要一个匹配JSON数组的字符串,如下所示:

"[{\"id\":0,\"username\":\"test\"},{\"id\":8,\"username\":\"testuser\"}]"

接下来让我们看一下名为' User'如下所示:

public class User
{
    public int Id { get; set; }
    public string Username{ get; set; }  
}

最后做反序列化:

string str = "[{\"id\":0,\"username\":\"test\"},{\"id\":8,\"username\":\"testuser\"}]";
User[] res = Newtonsoft.Json.JsonConvert.DeserializeObject<User[]>(str);

现在你可以做到#fore;&#39;在res数组上循环。

答案 1 :(得分:0)

嗨,你可以对无效的json做一些trikk ......

string myinvalidJson = "{\"id\":0,\"username\":\"test\"}{\"id\":8,\"username\":\"testuser\"}";

foreach(var item in myinvalidJson.Replace("}{", "}|{").Split('|')) {
...
}

或使用newtonsoft创建有效的json和反序列化

string myinvalidJson = "{\"id\":0,\"username\":\"test\"}{\"id\":8,\"username\":\"testuser\"}";

var validJson = "[" + myinvalidJson.Replace("}{", "},{") + "]";