Я конвертирую из модели и сериализую ее для отправки на веб-страницу, где JSON затем редактируется.После редактирования я использую AJAX для отправки обновленного JSON в код, где мне нужно преобразовать его обратно в исходную модель.После сериализации модели в первый раз она поддерживает массив JSON, а затем объекты JSON.После использования JSON.Stringify массив JSON превращается в объект JSON из объектов JSON.Я имею дело с несколькими объектами JSON, которые отображаются и редактируются для отправки в код позади.Полученная строка имеет формат
{"0":
{"Id":{},
"ItemNumber":"1",
"Person":{
"PersonNumber": "001",
"Address": {
"Street": "Test street 123"
},
"email": "test@email.com"
},
"Contact": {
"Name" : "Company A"
},
"Quantity" : "12"
},
"1": etc,
}
. Я хочу просмотреть каждое число, которое действует как ключ для объекта, однако попытка сопоставить его со словарем или десериализацией объекта превращает данные в {{ "Id":{}, "ItemNumber" : "1", "Person": {etc }}
Я думаю, что я так долго смотрю на проблему, решение у меня перед глазами, и я слишком обдумываю это, я просто не могу найти правильный способ получить информацию в форме, которая соответствуетмодель, которую я пытаюсь преобразовать в.
Использование JsonConvert
для десериализации в Dictionary<string,Object>
очень близко подходит ко мне, но я все же сталкиваюсь с проблемой
{
{
"Id":{},
"ItemNumber":"1",
etc
}
}
для одного объекта.Если я смогу убрать внешний слой скобок для каждого объекта, я считаю, что это будет правильный формат, но я не знаю, как это сделать.Я чувствую, что поступаю неправильно, возможно, есть более простой способ индексирования объекта Json с помощью цикла for.Есть ли метод, принадлежащий JsonConvert
/ JObject
, который может помочь или сделать это преобразование чище, может быть, что-то из JToken
?
Вот некоторый код из Code Behind.
[WebMethod]
public static string UpdateItems(string json) //json = {"0":{"Id": etc}}
{
var result = JsonConvert.DeserializeObject<Dictionary<string, object>>(json); // returns key "0", value { { Format my desired model is in } }
// My goal is to convert it back to the original object like
// JsonConvert.DeserializeObject<Dictionary<string, OriginalModel>> rather than creating a new class
}