如何遍历序列化的 json

问题描述

Res={"result":["123","563"]}

这是我拥有的类似 json 文件。我必须遍历它并将每个值分配为 id。 我正在尝试

Obj = JsonConvert.DeseraializeObject<classname>(Res);
Foreach(string id in Obj)
{Function();}

我收到错误,因为 class 没有 getenumerator 的扩展

编辑:
我这样做了

List<classname> objlist = jsonconvert.deserializeObject<list<classname>>(res); 
foreach (string id in objlist)
{function();}

foreach 循环出错,因为无法将类名转换为字符串

解决方法

你的对象应该有属性 List 或 List 并且你将迭代抛出它,而不是在 Obj 中。

,

你的 Json 结构在 c# 中看起来像这样

using Newtonsoft.Json;

public class Result
{ 
    [JsonProperty("result")]
    List<string> Res { get; set; }
}

反序列化:

Result r = JsonConvert.DeserializeObject<Result>(jsonString);

简要说明:你的json有一个名为“result”的属性,这个属性是一个“string”类型的“list”List<string>.

,

在 JSON 文件中,您有一个带有键“results”的字符串数组。可以这样建模:

public class Result
{
    public List<string> results { get; set; }
}

您可以反序列化,然后按以下方式循环:

var data = JsonConvert.DeserializeObject<Result>(Res);
    foreach (var id in data.results)
    {
      // Assignment logic
    }