有没有办法查询特定项目的JSON(字符串)?
即:
String jSon = "{\"a\":{\"b\":27472483,\"c\":\"123\"}}";
这样:
Int32 bob = (Int32)getFromJSON("a.b", jSon);
// bob == 27472483
谢谢你, -Theo
答案 0 :(得分:1)
这里要做的是将JSON字符串反序列化为C#对象,然后从那里访问“b”属性。 More on that here
答案 1 :(得分:0)
public T getFromJSON<T>(String sel, String jSon)
{
String[] id = sel.Split('.');
Object tmp = jSon;
for (int i = 0; i < id.Length; i++)
{
tmp = tmp.ToString().Split(new string[] { "\"" + id[i] + "\":" }, StringSplitOptions.None)[1];
}
Boolean isString = false;
if (tmp.ToString().StartsWith("\""))
{
tmp = tmp.ToString().Substring(1);
isString = true;
}
tmp = tmp.ToString().Split(new char[] { '}', ']', '"' }, StringSplitOptions.None)[0];
if (!isString && tmp.ToString().EndsWith(","))
tmp = tmp.ToString().Substring(0, tmp.ToString().Length - 1);
if (typeof(T) == typeof(Int32))
tmp = Int32.Parse(tmp.ToString());
return (T)tmp;
}
v0.7b有效!