2016-01-20 4 views
0

я получил следующую строку (JSON) из WS:Deserialize JSON к списку объектов

{"cables":"[{\"rexelReference\":\"FIL01084259\",\"providerReference\":\"1084259\",\"productLibe\":\"CABLE BLEU D\\u0027INSTRUM 01IT09EGFA\",\"brand\":\"FIL\",\"color\":\"BLEU\",\"section\":\"0,9\",\"conductorNumber\":1,\"displayProduct\":true},{\"rexelReference\":\"FIL01084386\",\"providerReference\":\"1084386\",\"productLibe\":\"CABLE BLEU D\\u0027INSTRUM 01IT09EGSF\",\"brand\":\"FIL\",\"color\":\"BLEU\",\"section\":\"0,9\",\"conductorNumber\":1,\"displayProduct\":true}]","productNumber":"2"} 

и эти объекты:

public class ProductList 
{ 
    [JsonProperty("cables")] 
    public List<ProductDTO> cables { get; set; } 
    public int count { get; set; } 
} 

public class ProductDTO 
{ 
    public string rexelReference; 
    public string providerReference; 
    public string productLibe; 
    public string brand; 
    public string color; 
    public string section; 
    public string conductorNumber; 
    public string displayProduct; 
} 

Когда я пытаюсь десериализации с этим кодом:

ProductList list = JsonConvert.DeserializeObject<ProductList>(wsResponse2); 

Я получаю сообщение об ошибке:

Дополнительная информация: Ошибка преобразования значения "[{" для ввода 'System.Collections.Generic.List`1 [VoltaFront.DTO.ProductDTO]'. Путь «кабели», линия 1, позиция 14.

Я не понимаю проблемы. Это из-за обратной косой черты? Должен ли я удалить их перед десериализацией?

Редактировать теперь ошибка я получаю:

* Дополнительная информация: Ошибка преобразования значения "[{" rexelReference ":" FIL01084259" , "providerReference": "1084259", "productLibe": "КАБЕЛЬ BLEU D \ u0027INSTRUM * <

+2

проверить этот сайт, чтобы подтвердить ваш json http://jsonlint.com/ вы увидите, что это недопустимо – MethodMan

+0

* Это из-за обратных косых черт? *, нет. Эти обратные косые черты на самом деле не существуют. Это спасательные персонажи. –

+0

на самом деле моя копия/вставка была неправильной, я отредактировал мой msg, реальный json msg, который я получаю от WS, действителен, но thx для вашего инструмента в любом случае – Lempkin

ответ

0

Ваш Json не действует, после удаления вытекания и положить в JSON форматировщике и исключение.

Removing Escape

JSON Formatter

Исправьте JSON. Вот тзд ошибка:

Unable to format the JSON input. Expected a ',' or '}' at character 15 near 'les":"[{"rexelRefere' 
+0

yes my copy/paste был неправильным, я отредактировал мой msg, я проверил реальный json msg, который я получаю от WS, и это действительно – Lempkin

+0

Это все еще недействительно, проверьте обе ссылки, и вы увидите это. – mybirthname

2

Вы имеете проблему в формате JSON, просто удалить не используемые двойные кавычки и использовать его как в следующем:

string wsResponse2 = "{\"cables\":[{\"rexelReference\":\"FIL01084259\",\"providerReference\":\"1084259\",\"productLibe\":\"CABLE BLEU D\\u0027INSTRUM 01IT09EGFA\",\"brand\":\"FIL\",\"color\":\"BLEU\",\"section\":\"0,9\",\"conductorNumber\":1,\"displayProduct\":true}]}"; 
Смежные вопросы