Вопрос

Я использую json.net для анализа объектов и доставки их в созданный мной веб-сервис.Объекты являются LINQ-объектами.Когда я обращаюсь к этому веб-сервису с помощью jQuery, он неправильно анализирует JSON.Кажется, что-то не так с форматированием..

Строка JSON, которую я получаю, - это:

[{"typeid":1,
  "typename":"binders",
  "description":"test",
  "RESOURCEs":
    [{"resourceid":4,
      "resourcename":"Binders 1",
      "description":"Pakke med hele fire binders!!!",
      "typeid":1,
      "RESERVATIONLINEs":[]
     },    
     {"resourceid":10,
      "resourcename":"xxx",
      "description":"xxx",
      "typeid":1,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":2,
  "typename":"blyant",
  "description":"også dyrt",
  "RESOURCEs":
    [{"resourceid":5,
      "resourcename":"Gråblyant 1",
      "description":"Fin og grå",
      "typeid":2,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":6,
      "resourcename":"Rødblyant 1",
      "description":"Må spisses ofte",
      "typeid":2,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":4,
  "typename":"Penn",
  "description":"tester",
  "RESOURCEs":
    [{"resourceid":7,
      "resourcename":"Penn 1",
      "description":"Blå og fin",
      "typeid":4,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":11,
      "resourcename":"xxx",
      "description":"xxx",
      "typeid":4,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":5,
  "typename":"Kajakk",
  "description":"Dette er en type båt",
  "RESOURCEs":
    [{"resourceid":1,
      "resourcename":"Havkajakk 1",
      "description":"FOr havbruk",
      "typeid":5,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":2,
      "resourcename":"Havkajakk 2",
      "description":"For havbruk",
      "typeid":5,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":6,
  "typename":"3G-modem",
  "description":"Fra NetCom",
  "RESOURCEs":
    [{"resourceid":3,
      "resourcename":"3G-modem 1",
      "description":"Gammelt og ustabilg",
      "typeid":6,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":12,
      "resourcename":"xxx",
      "description":"xxx",
      "typeid":6,
      "RESERVATIONLINEs":[]
     }
    ]
 },
 {"typeid":7,
  "typename":"Minnepinne",
  "description":"på 1 KB",
  "RESOURCEs":
    [{"resourceid":8,
      "resourcename":"Minnepinne 1",
      "description":"1 KB (!)",
      "typeid":7,
      "RESERVATIONLINEs":[]
     },
     {"resourceid":9,
      "resourcename":"Minnepinne 2",
      "description":"20 PB",
      "typeid":7,
      "RESERVATIONLINEs":[]
     }
    ]
 }]

У кого-нибудь есть подсказки, почему это не работает?

Это было полезно?

Решение

Реальная проблема здесь заключалась в том, что этот JSON был встроен в XML-тег.Я решил проблему, проанализировав JSON-строку с помощью этого анализатора: http://www.json.org/js.html

Конечно, это не идеально, поскольку jQuery должен сделать это за меня, но пока я не найду способ для .NET-webservices возвращать необработанную JSON-строку, не встроенную в XML-тег, это решение работает =)

Другие советы

Я предполагаю, что это проблема с кодировкой, что, если вы удалите это из своей записи?

"resourcename":"Rødblyant 1"

Убедитесь, что вы работаете с UTF-8 с обеих сторон.Я предполагаю, что либо вы кодируете строку, используя кодировку по умолчанию (например, windows1252), либо принимающая сторона делает что-то подобное.

Помните, что JSON должен быть в формате UTF-8, UTF-16 (ФАЙЛ или BE) или UTF-32 (ФАЙЛ или BE).

Чтобы проверить это, избавьтесь от всех å и ø персонажей и посмотреть, сработает ли это.Если это так, то это определенно кодирование с той или другой стороны.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top