我正在尝试拆分一个包含多个json字符串的c#字符串
示例:
{"id":0,"username":"test"}{"id":8,"username":"testuser"}
如何在自己的'foreach'循环中遍历每个json字符串
答案 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("}{", "},{") + "]";