【发布时间】:2014-05-27 14:23:55
【问题描述】:
我正在编写一个程序来访问 Mediafire 的 Web API,一切顺利,唯一剩下的问题是我难以解析的 JSON 格式的响应文本。
通过创建文件夹等 API 调用,我得到一个简单的响应,可以将其反序列化为 Dictionary<string,Dictionary<string,string>> 并搜索值:
{"response":
{
"action":"folder\/create.php",
"name":"blargh",
"folder_key":"mmttuu769djo0",
"result":"Success",
"current_api_version":"2.14"
}
}
我会这样使用它:
Dictionary<string,string> json = DeserializeJSON(text)["response"];
//DeserializeJSON is a method to shorten:
//JsonConvert.DeserializeObject<Dictionary<string,Dictionary<string,string>>(text)
然后我可以查询 json["result"] 之类的。通过其他 API 调用,我得到了我不知道如何处理的复杂结构。它基本上是一堆键:值对,但有些值也是键:值对,不能像我目前正在做的那样放入字典中。我对 C# 还很陌生,所以我不确定在这里做什么,是否还有其他数据类型,例如没有静态类型的 Dictionary?
回复如下:
{"response":
{
"action":"upload\/upload.php",
"doupload":
{
"result":"0",
"key":"89lh7760x4l"
},
"server":"live",
"result":"Success",
"current_api_version":"2.14"
}
}
我的问题是:将此类数据放入可以查询值的列表中的好方法是什么?
【问题讨论】:
-
不要在问题中写下你自己的答案,这样阅读的人可能会找到“正确答案”
-
当时我试过了,但有些警告说我必须等待 8 小时才能回答我自己的问题,不过我现在看看能不能做到。是的,但现在我必须等待 24 小时才能接受!
标签: c# json dictionary json.net