Исключение синтаксического анализа JSON с использованием System.Json
Я получаю сообщение об ошибке при разборе строки JSON в объект. Я использую system.json для анализа строки json.
Файл JSON: (ПРИМЕЧАНИЕ: я не могу изменить структуру этого файла JSON, потому что он создан)
{
title: "My Title",
log: "",
nid: "1234",
type: "software",
language: "EN",
created: "1364480345",
revision_timestamp: "1366803957",
body: {
und: [
{
value: "abc",
summary: "def"
}
]
}
}
Код C#:
string jsonString = new WebClient().DownloadString(".......MyJson.json"); //For test purpose
var obj = JsonObject.Parse (jsonString); ///<--- At this line the exception is thrown
Исключение:
System.ArgumentException has been thrown.
Invalid JSON string literal format. At line 1, column 2
Как это решить?
Заранее спасибо!
2 ответа
Как это решить?
(ПРИМЕЧАНИЕ: я не могу изменить структуру этого файла json, потому что он генерируется)
Легко, используйте json.Net. это работает без проблем с вашим JSON
var j = JObject.Parse(jsonString);
Вы даже можете использовать dynamic
ключевое слово
dynamic j = JObject.Parse(jsonString);
Console.WriteLine("{0},{1}", j.title, j.body.und[0].value);
Ты не можешь Это не действительно JSON. Имена полей должны быть заключены в кавычки. Все инструменты разбора json будут выбрасываться при попытке разобрать это.
Вы можете обработать его и превратить в действительный json перед десериализацией, но на самом деле вам нужно исправить это на стороне API. Ни один клиент не будет работать с этим.