这是json字符串:
{"d":[{"numberOfRowsAdded":"26723"}]}
string json = DAO.getUploadDataSummary();
JObject uploadData = JObject.Parse(json);
string array = (string)uploadData.SelectToken("d");
如何更改代码以读取'numberOfRowsAdded?
中的值答案 0 :(得分:46)
JObject uploadData = JObject.Parse(json);
int rowsAdded = Convert.ToInt32((string)uploadData["d"][0]["numberOfRowsAdded"])
答案 1 :(得分:39)
你需要施展到JArray
:
string json = "{\"d\":[{\"numberOfRowsAdded\":\"26723\"}]}";
JObject parsed = JObject.Parse(json);
JArray array = (JArray) parsed["d"];
Console.WriteLine(array.Count);
答案 2 :(得分:3)
您可以将JObject
投射为dynamic
个对象
您也可以将数组转换为JArray
对象。
JObject yourObject;
//To access to the properties in "dot" notation use a dynamic object
dynamic obj = yourObject;
//Loop over the array
foreach (dynamic item in obj.d) {
var rows = (int)item.numberOfRowsAdded;
}
答案 3 :(得分:0)
我尝试编写一种通用方法,该方法可以读取json字符串的任何部分。我在此线程上尝试了很多答案,但它不适合我的需求。这就是我想出的。我在服务层中使用以下方法从json字符串读取我的配置属性。
public T getValue<T>(string json,string jsonPropertyName)
{
var parsedResult= JObject.Parse(json);
return parsedResult.SelectToken(jsonPropertyName).ToObject<T>();
}
这就是您将如何使用它:
var result = service.getValue<List<string>>(json, "propertyName");
因此,您可以使用它来获取json字符串中的特定属性,并将其转换为所需的内容。