繁体   English   中英

我如何使用json.net修复列表<>中的无效json和反序列化

[英]how can i fixed invalid json and Deserialize in list<> using json.net

当我尝试部署json时发生错误:

Newtonsoft.Json.JsonReaderException: Additional text encountered after finished reading JSON content: [. Path '', line 1, position 37.

当我在Google中进行大量搜索时,我发现json无效,因为它具有multiple roots json是:

{"slotId":"1","slotName":"9:00 am"}{"slotId":"3","slotName":"9:15 am"}{"slotId":"4","slotName":"9:15 am"}{"slotId":"6","slotName":"9:30 am"}{"slotId":"7","slotName":"9:30 am"}{"slotId":"8","slotName":"9:45 am"}{"slotId":"9","slotName":"9:45 am"}{"slotId":"10","slotName":"10:00 am"}{"slotId":"11","slotName":"10:15 am"}{"slotId":"12","slotName":"10:30 am"}

我正在尝试在列表<>中反序列化:

                mSlotType = JsonConvert.DeserializeObject<List<SlotType>>(json);
            mAdapter = new SlotTimeAdapter(this, Resource.Layout.MrngTimeSlot_ListView_Rowlayout, mSlotType);

json类是:

 class SlotType
{
    public string slotId { get; set; }
    public string slotName { get; set; } 

    public class RootObject
    {
        public List<SlotType> slottype { get; set; }
    }
}

请帮我

用于开发json的php代码是:

$Details = array();
    $detail = array("slotId" => $row['slotId'],
                        "slotName" => $row['slotName'],
                            );
        array_push($Details, $detail);

    echo json_encode($Details );  

当我尝试在https://jsonformatter.curiousconcept.com/上检查我的json时,它给了我一个输出:

`[{
  "slotId":"1",
  "slotName":"9:00 am"}][{
  "slotId":"3",
  "slotName":"9:15 am"}][{
  "slotId":"4",
  "slotName":"9:15 am"}][{
  "slotId":"6",
  "slotName":"9:30 am"}][{
  "slotId":"7",
  "slotName":"9:30 am"}][{
  "slotId":"8",
  "slotName":"9:45 am"}][{
  "slotId":"9",
  "slotName":"9:45 am"}][{
  "slotId":"10",
  "slotName":"10:00 am"}][{
  "slotId":"11",
  "slotName":"10:15 am"}][{
  "slotId":"12",
  "slotName":"10:30 am"}]`

请帮助我,因为我无法理解问题出在哪里

这里的问题是您的JSON格式不正确,可能看起来应该像这样:

{
    slottype: [{"slotId":"1","slotName":"9:00 am"},
    {"slotId":"3","slotName":"9:15 am"},
    {"slotId":"4","slotName":"9:15 am"},
    {"slotId":"6","slotName":"9:30 am"},
    {"slotId":"7","slotName":"9:30 am"},
    {"slotId":"8","slotName":"9:45 am"},
    {"slotId":"9","slotName":"9:45 am"},
    {"slotId":"10","slotName":"10:00 am"},
    {"slotId":"11","slotName":"10:15 am"},
    {"slotId":"12","slotName":"10:30 am"}]
}
  • 方括号表示列表类型
  • 列表元素之间必须使用逗号
  • 您将需要根元素结构来更好地匹配您的根对象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM