Исключение синтаксического анализа 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. Ни один клиент не будет работать с этим.

Другие вопросы по тегам