У відповіді я отримую такий результат JSON:
{"result": { "":-41.41, "ABC":0.07, "XYZ":0.00, "Test":0.00 }}
Я підготував такий клас для десеріалізації:
[DataContract]
public sealed class RpcResponse
{
[DataMember(Name = "result")]
public List<KeyValuePair<string, decimal>> Result { get; set; }
}
Однак, коли я намагаюся дезіаріалізувати це DataContractJsonSerializer
в Result
властивість закінчується наявністю нульових записів. (Також не працює при оголошенні Result
як Dictionary<string, decimal>
)
Чи є спосіб це виконати DataContractJsonSerializer
?
Відповіді:
0 для відповіді № 1Ваш рядок JSON являє собою об'єкт з aвластивість Результат, який сам по собі є об'єктом з 4 властивостями: "", ABC, XYZ та Test. Щоб результат був списком KeyValuePairs, JSON виглядатиме так:
{"result": [{ "":-41.41}, {"ABC":0.07}, {"XYZ":0.00}, {"Test":0.00 }] }
Зауважте, що якщо ви використовуєте асоціативний масиву коді Javascript, що він буде серіалізуватися як об'єкт із парами властивостей, а не як масив об'єктів. Якщо це джерело рядка JSON, можливо, вам доведеться перейти на використання звичайного індексованого масиву у своєму JS, щоб отримати належний JSON.