2017-02-13 83 views
-7

如何从C#下面的JSON字符串中选择Test内的Id?如何阅读这个JSON字符串?

{ 
    "Test": [ 
    "Hello", 
    { 
     "Id": 5 
    } 
    ] 
} 

这是我如何可以读取里面文本内容,但我不能做同样的事情访问Id

var test = JObject.Parse(MyJsonString)["Test"]; 
+1

什么会“同样的事情”是什么? '[ “测试”] [1] [ “ID”]'? – Ryan

+0

当你调试你的测试变量时,你看到了什么? – BugFinder

+0

@Ryan谢谢你的工作。但是[1]在[“Test”]和[“Id”]之间做了什么?我在之前没有[1]的尝试,但它没有奏效。介意解释? – Muppen

回答

-1

在C#中处理JSON的干净方式是使用表示JSON结构的类并将JSON解析到它们中。例如,您可以使用json2csharp来生成这些类。让我们假设你已经产生了类Test为解析目标:

using Newtonsoft.Json; 
private static readonly JsonSerializerSettings StrictJsonSettings = new JsonSerializerSettings { 
    MissingMemberHandling = MissingMemberHandling.Error 
}; 
Test test = JsonConvert.DeserializeObject<Test>(MyJsonString, StrictJsonSettings); 
var jsonId = test[1].Id; 

的哈克的方式是投结果作为dynamic

var parsedJson = JObject.Parse(MyJsonString) as dynamic; 
var jsonId = parsedJson.Test[1].Id;