Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.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
C# 如何访问json.net中的子值_C#_Json.net - Fatal编程技术网

C# 如何访问json.net中的子值

C# 如何访问json.net中的子值,c#,json.net,C#,Json.net,我试图解析json以访问子值。下面是示例json jsondata = { "sample_data": "{"o2:{"testname":"o2","department":"chemistry","normalvalue":"l","testmethod":"j","specimen":"g","referelprice":"y","normalprice":"i","discountprice":"o"}}" } 下面是我的代码 var _json = JObject.Parse(

我试图解析json以访问子值。下面是示例json

jsondata = {
  "sample_data": "{"o2:{"testname":"o2","department":"chemistry","normalvalue":"l","testmethod":"j","specimen":"g","referelprice":"y","normalprice":"i","discountprice":"o"}}"
}
下面是我的代码

var _json = JObject.Parse(jsondata.ToString());
Console.WriteLine(_json["sample_data"]);
这段代码给出了输出

{"o2":{"testname":"o2","department":"chemistry","normalvalue":"l","testmethod":"j","specimen":"g","referelprice":"y","normalprice":"i","discountprice":"o"}}
现在,如果我试图通过使用

WriteLine(_json[“sample_data”][“o2”])

我收到下面的错误消息

cannot access child value on newtonsoft.json.linq.jvalue
请帮助我了解如何获取子值。我想要像这样的输出

{"testname":"o2","department":"chemistry","normalvalue":"l","testmethod":"j","specimen":"g","referelprice":"y","normalprice":"i","discountprice":"o"}

我怎样才能做到这一点。请帮助。

您可以使用dynamic

dynamic a = JsonConvert.DeserializeObject(yourJson);
Console.WriteLine(a.sample_data.o2.ToString());

正如在示例中一样,存储在示例数据上的值是字符串

试试这个

var _json = JObject.Parse(jsondata.ToString());
var sampledataJson = JObject.Parse(_json["sample_data"].ToString());
Console.WriteLine(sampledataJson["o2"]);

var_json=JObject.Parse(jsondata.ToString());WriteLine(_json[sample_data]);那Console.WriteLine(_json[sample\u data][“o2]”)呢?这有帮助吗:我刚才在代码中添加了我以前错过的“”。请检查一下代码并让我知道。谢谢你advance@ZivS我还是不工作。请建议不同的代码。这是Newtonsoft json的一部分吗?@Reddy JsonConvert是Newtonsoft json的一部分,dynamic是C#语言的一部分。只需在答案中添加该细节。。只是库的链接或名称,因为OP没有提到使用Newtonsoft库。这里的人们开始抱怨它。:)@Reddy JObject是Newtonsoft库的一部分,所以我不需要添加任何内容。他已经在使用它了。它不应该是Console.WriteLine(a.sample\u data.o2)吗?