我想从我的返回api jsonstring中获取数据。
我的结果字符串看起来像这样
[
{"Id":12,"name":"testname","type":"testtype"}
{"Id":12,"name":"testname","type":"testtype"}
{"Id":12,"name":"testname","type":"testtype"}
]
如何将此数据提取到c#对象
我只能这样做
var obj = JObject.Parse(result);
var ID = (int)obj["Id"];
var Name = (String)obj["name"];
var type = (String)obj["type"];
User u = new User(ID,Name,Type);
答案 0 :(得分:3)
您的字符串无效JSON,因此将其设置为有效JSON是快速处理它的第一步。最简单的方法是使它成为JSON数组:
string jsonArray = "["
+ string.Join(", ", json.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries))
+ "]";
从那时起它很简单(参见我的相关答案:Easiest way to parse JSON response):
var result = JsonConvert.DeserializeObject<User[]>(jsonArray);
另一个选择是自己拆分行,然后手动解析并添加项目到列表中。
答案 1 :(得分:0)
Result是一个JSON数组..所以循环和解析
list<User> userList = new list<User>();
for(int i=0 ; i <result.length; i++)
{
var obj = JObject.Parse(result[i]);
var ID = (int)obj["Id"];
var Name = (String)obj["name"];
var type = (String)obj["type"];
User u = new User(ID,Name,Type); //create User
userList.add(u); //Add to list
}