当我尝试反序列化此JSON时,为什么会出现错误:
<div class="maindiv">
<select name="" id="">
<option value="">Item 1</option>
<option value="">Item 2</option>
<option value="">Item 3</option>
</select>
<!-- i want to put my own caret icon here -->
</div>
进入这些课程:
{
"id" : 1,
"name" : "demo",
"pixeldata" : [
{ "time" : "1", "colour" : "#ff5357" },
{ "time" : "2", "colour" : "#2424ff" },
{ "time" : "3", "colour" : "#ff0d13" },
{ "time" : "4", "colour" : "#f7ff4a" },
{ "time" : "5", "colour" : "#fa24ff" },
{ "time" : "6", "colour" : "#ff3e43" }
]
}
使用:
public struct Display
{
public int id;
public string name;
public List<Pixeldata> pixeldata;
}
public struct Pixeldata
{
public float time;
public string colour;
}
错误说:
Display MyDisplay = JsonConvert.DeserializeObject<Display>(json_string);
我一直在阅读类似的QnA,查看各种示例,它们看起来都应该有效,但它不是,我该怎么办?
更新:我使用此代码转储我的字符串
Error converting value "[{ "time" : "1", "colour" : "#ff5357"}, {etc...}]" to type 'System.Collections.Generic.List`1[Pixeldata]'. Path 'pixeldata', line 1, position 313.
这是控制台中显示的确切结果
Debug.Print("JSON DUMP: "+_ServerResponse.data);
答案 0 :(得分:0)
“time”在json中是string类型,但是您尝试反序列化以键入float。那不行。
更新:显然,在阅读了有关您的问题的评论后,它可以在 Json.Net的某些实现中工作,但这可能是“版本相关的”,因此可能无法在您的场景中运行
答案 1 :(得分:0)
我收到的JSON格式不正确。
我认为这与SQL存储JSON的方式有关。
所以我只是搞砸了我从数据库中获取的值,然后在发送之前重新编码它们,现在它可以正常工作。