在C#项目中,我收到一个Newtonsoft.Json.Linq.JObject
并遍历其键,值
public static void info(JObject aInfoJSON){
foreach(var it in aInfoJSON){
if (it.Key.Equals("str")){/*do something*/}
if (it.Value.Equals(?)){/*so something*/}
}
}
此处it.Key
类型为string
,但it.Value
为Newtonsoft.Json.Linq.JToken
。传递"something"
永远不会在条件变为真时传递,也不会传递"{something}"
和JToken.parse("something")
引发异常。
Newtonsoft.Json.JsonReaderException:'解析值s时遇到意外字符。路径”,第0行,位置0。'
接收到的JObject示例如下:{{ "name": "systems api", "version": "11.0.7.72", "apiVersion": "v1"}}
我应该如何进行比较?
答案 0 :(得分:2)
使用JValue,您可以选择值类型并沿这些方式实现某些东西。
public static void info(JObject aInfoJSON){
foreach(var it in aInfoJSON){
if (it.Key.Equals("str")){/*do something*/}
switch(it.Value.Type)
{
case JToken.String:
if (it.Value.Value<string>().Equals("?"))
{/*so something*/}
case JToken.Float:
if(it.Value.Value<Float>().Equals(0));
{/*so something*/}
}
}