【发布时间】:2012-09-11 19:19:28
【问题描述】:
我正在解析 JSON 并收到以下错误:
我正在使用 Newtonsoft.Json.NET dll。
读取字符串时出错。意外标记:StartObject。路径“[0]”,第 1 行,位置 2。
这是我的代码:
public static List<string> GetPluginByCategory(string category)
{
var wc = new WebClient();
var json = wc.DownloadString("http://api.bukget.org/api2/bukkit/category/" + category);
var list = JsonConvert.DeserializeObject<List<string>>(json);
return list;
}
category 可以是以下字符串之一:
[“管理工具”、“反悲伤工具”、“聊天相关”、“开发者工具”、“经济”、“修复”、“乐趣”、“常规”、“信息”、“机制”、 “杂项”、“角色扮演”、“传送”、“网站管理”、“世界编辑与管理”、“世界生成器”]
编辑:这是我得到的回复:
[{"description": "Stop users swearing\n", "name": "a5h73y", "plugname": "NoSwear"}, {"description": "Be sure that your server rules are read and accepted!", "name": "acceptdarules", "plugname": "AcceptDaRules"}]
有人知道为什么它不起作用吗?它以前可以工作:/。
【问题讨论】:
-
请发布从服务器收到的准确的 JSON 数据。无论出于何种原因,它都可能不是“字符串数组”。
-
(实际上,看到响应很长,发布一个 short 但应该是响应的有效版本,显示相同的错误。错误是JSON.NET 正在寻找一个
{,它需要一个字符串开始。List映射到 ["a", "b", "etc"],而数据是[{someobj1}, {someobj2}, {etc}]。) -
这是我得到的一小段代码: [{"description": "Stop users swearing\n", "name": "a5h73y", "plugname": "NoSwear"}, {" description": "确保你的服务器规则被阅读和接受!", "name": "acceptdarules", "plugname": "AcceptDaRules"}
-
更新主帖中的内容(不要忘记在末尾添加
]以使其具有代表性)。 -
当它“曾经工作”时,来自服务器的数据是否相同?也许它改变了?