SOE中如何迭代访问JsonObject中的键值对

SOE .net开发,对参数进行序列化时,不知道属性的Key值,是否可以通过迭代访问jsonobject中的键值对来获取?jsonobject有个GetEnumerator()方法,但是current返回的是object,如何解析这个object才能得到对应条目的name和“value”?
已邀请:

桂朝

赞同来自:

【解决办法】:
在调试时查看通过GetEnumerator()方法获得的current的值,即当前的json对象,这个对象并没有定义公开的Key,Value属性,但是可以利用current的ToString方法,将对象转为字符串再做处理,参考代码如下:
【代码】
System.Collections.IEnumerator enu = operationInput.GetEnumerator();
while (enu.MoveNext())
{
object cur = enu.Current;
string curstr = cur.ToString();
curstr = curstr.Substring(1, curstr.Length - 2);
string[] curarr = curstr.Split('','');
string key = curarr[0];
string value = curarr[1];
}
[/code]

V仔

赞同来自:

今天刚好也在用这个,但是推荐用Json.net把,写起来简单。
jsonobject的GetEnumerator方法注释上有写的,foreach遍历出来的是一个 (KeyValuePair<string, object>对象
            string geos = "{'0':'polygon','1':'point'}";
Newtonsoft.Json.Linq.JObject joo = JObject.Parse(geos);
foreach (var j in joo)
{

var k = j.Key;
}
var jo = new JsonObject(geos);
foreach (var item in jo)
{
var m = ((KeyValuePair<string, object>)item).Key;
}

要回复问题请先登录注册