#json.net
#json.net
Вопрос:
Возможно ли получить такой формат :
"list":{
"one":{
"fieldone":"-----",
"fieldtwo":"-----"
},
"two":{
"fieldone":"-----",
"fieldtwo":"-----"
}
}
Я не хочу, чтобы массив [] или имена «один» и «два» были удалены, я изо всех сил пытаюсь получить точный следующий формат.
Комментарии:
1. Является ли проблема кодированием, декодированием или отображением данных?
2. У меня есть данные, и я хочу сериализовать их в этот формат, но я не вижу, как добавить несколько объектов json в объект json, когда я использую объект list, «список» становится массивом вместо объекта json, а поля «on» и «two»просто исчезни.
3. Используйте пользовательский
JsonConverter
. james.newtonking.com/json/help/index.html?topic=html /…
Ответ №1:
Если вы поместите свои элементы в словарь вместо списка, вы можете получить желаемый результат. Вот пример:
class Program
{
static void Main(string[] args)
{
RootObject obj = new RootObject();
obj.Items = new Dictionary<string, Item>();
obj.Items.Add("one", new Item { FieldOne = "foo", FieldTwo = "bar" });
obj.Items.Add("two", new Item { FieldOne = "fizz", FieldTwo = "bang" });
string json = JsonConvert.SerializeObject(obj, Formatting.Indented);
Console.WriteLine(json);
}
}
class RootObject
{
[JsonProperty("list")]
public Dictionary<string, Item> Items { get; set; }
}
class Item
{
[JsonProperty("fieldone")]
public string FieldOne { get; set; }
[JsonProperty("fieldtwo")]
public string FieldTwo { get; set; }
}
Вывод:
{
"list": {
"one": {
"fieldone": "foo",
"fieldtwo": "bar"
},
"two": {
"fieldone": "fizz",
"fieldtwo": "bang"
}
}
}