Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用newtonjson解析c#中的json?_C#_Json - Fatal编程技术网

如何用newtonjson解析c#中的json?

如何用newtonjson解析c#中的json?,c#,json,C#,Json,我是c#新手,有一个json字符串: "{\"Result\":0,\"Packages\":[{\"Count\":5.0,\"Price\":100000},{\"Count\":10.0,\"Price\":170000},{\"Count\":20.0,\"Price\":300000},{\"Count\":50.0,\"Price\":600000},{\"Count\":100.0,\"Price\":900000}],\"IsArbitrary\":true}" 尝试用以下代

我是c#新手,有一个json字符串:

"{\"Result\":0,\"Packages\":[{\"Count\":5.0,\"Price\":100000},{\"Count\":10.0,\"Price\":170000},{\"Count\":20.0,\"Price\":300000},{\"Count\":50.0,\"Price\":600000},{\"Count\":100.0,\"Price\":900000}],\"IsArbitrary\":true}"

尝试用以下代码分析该字符串:

dynamic dynObj = JsonConvert.DeserializeObject(html);


但是我想要访问例如数组索引0或数组索引1,我如何才能为此编写代码?谢谢。

不要使用
动态
,除非没有其他选项来解决您的问题。以下是如何创建类型以映射数据:

private struct DataHolder
{
    public decimal result { set; get; }
    public Package[] Packages { set; get; }
    public bool IsArbitrary { set; get; }
}

private struct Package
{
    public decimal Count { set; get; }
    public decimal Price { set; get; }
}

static void Main(string[] args)
{
    string html = "{\"Result\":0,\"Packages\":[{\"Count\":5.0,\"Price\":100000},{\"Count\":10.0,\"Price\":170000},{\"Count\":20.0,\"Price\":300000},{\"Count\":50.0,\"Price\":600000},{\"Count\":100.0,\"Price\":900000}],\"IsArbitrary\":true}";

    DataHolder data = JsonConvert.DeserializeObject<DataHolder>(html);

    foreach(var package in data.Packages)
    {
       // do something with package.Count or package.Price
    }
}
私有结构数据持有者
{
公共十进制结果{set;get;}
公共包[]包{set;get;}
公共bool IsArbitrary{set;get;}
}
私有结构包
{
公共十进制计数{set;get;}
公共十进制价格{set;get;}
}
静态void Main(字符串[]参数)
{
字符串html=“{\'Result\':0,\'Packages\':[{\'Count\':5.0,\'Price\':100000},{\'Count\':10.0,\'Price\':170000},{\'Count\':20.0,\'Price\':300000},{\'Count\'Price\':600000},{\'Count\'Count\'100.0,\'Price\':900000},\'isarbiry\':true};
DataHolder data=JsonConvert.DeserializeObject(html);
foreach(data.Packages中的var包)
{
//对包装做点什么。数数或包装。价格
}
}

然后您就有了一个静态对象,可以在其中访问
并在其上循环。

不要使用
动态
,除非没有其他选项来解决您的问题。以下是如何创建类型以映射数据:

private struct DataHolder
{
    public decimal result { set; get; }
    public Package[] Packages { set; get; }
    public bool IsArbitrary { set; get; }
}

private struct Package
{
    public decimal Count { set; get; }
    public decimal Price { set; get; }
}

static void Main(string[] args)
{
    string html = "{\"Result\":0,\"Packages\":[{\"Count\":5.0,\"Price\":100000},{\"Count\":10.0,\"Price\":170000},{\"Count\":20.0,\"Price\":300000},{\"Count\":50.0,\"Price\":600000},{\"Count\":100.0,\"Price\":900000}],\"IsArbitrary\":true}";

    DataHolder data = JsonConvert.DeserializeObject<DataHolder>(html);

    foreach(var package in data.Packages)
    {
       // do something with package.Count or package.Price
    }
}
私有结构数据持有者
{
公共十进制结果{set;get;}
公共包[]包{set;get;}
公共bool IsArbitrary{set;get;}
}
私有结构包
{
公共十进制计数{set;get;}
公共十进制价格{set;get;}
}
静态void Main(字符串[]参数)
{
字符串html=“{\'Result\':0,\'Packages\':[{\'Count\':5.0,\'Price\':100000},{\'Count\':10.0,\'Price\':170000},{\'Count\':20.0,\'Price\':300000},{\'Count\'Price\':600000},{\'Count\'Count\'100.0,\'Price\':900000},\'isarbiry\':true};
DataHolder data=JsonConvert.DeserializeObject(html);
foreach(data.Packages中的var包)
{
//对包装做点什么。数数或包装。价格
}
}

然后你有一个静态对象,你可以访问
并在其上循环。

谢谢,这是真的,现在我如何向用户显示for-loop数据?谢谢,这是真的,现在我如何向用户显示for-loop数据?