【发布时间】:2018-11-13 03:47:11
【问题描述】:
我正在使用 Newtonsoft.Json 尝试将 JSON 转换为 Dictionary<string,string>
这是 JSON 文件:
[
{
"<p dir=\"rtl\">":""
},
{
"<p>":""
},
{
"<p dir='rtl'>":""
},
{
"<div dir='rtl'>":""
},
{
"<div>":""
},
{
"<div dir=\"rtl\">":""
},
{
"<script>":"<script>"/
},
{
"</script>":"</script>"
},
{
"<button>":"<button>"
},
{
"<button":"<button"
},
{
"</button>":"</button>"
},
{
"<br>":"<br>"
},
{
"<br />":"<br>"
},
{
"<br/>":"<br>"
},
{
"</br>":"<br>"
},
{
"\"":""
}
]
这是代码:
var replaceTags = System.IO.File.ReadAllText(JSON_FILE_PATH);
Dictionary<string, string> values = JsonConvert.DeserializeObject<Dictionary<string, string>>(replaceTags);
我遇到了以下异常:
无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型“System.Collections.Generic.Dictionary`2[System.String,System.String]”,因为该类型需要 JSON 对象(例如{"name":"value"}) 正确反序列化。 要修复此错误,请将 JSON 更改为 JSON 对象(例如 {"name":"value"})或将反序列化类型更改为数组或实现集合接口的类型(例如 ICollection、IList),例如可以从 JSON 数组反序列化。 JsonArrayAttribute 也可以添加到类型中以强制它从 JSON 数组中反序列化。 路径'',第 1 行,位置 1。
为什么会这样?
谢谢!
【问题讨论】:
-
使用 SwiftyJSON github.com/SwiftyJSON/SwiftyJSON
-
这看起来不像是字符串字典的有效 JSON 字符串,字符串。
-
这看起来更像是一个字典数组,而不是一个字典。它还有几个元素,将它合并到一个字典中可能会导致重复键,所以也许你应该在这里重新考虑你的方法。
-
好的,那我怎样才能把它转换成字符串字典呢?
-
我还想指出,
"<script>":"&lt;script&gt;"/行会导致您在结尾处出现正斜杠问题。