У меня есть следующий класс (немного упрощенный вариант):Как преобразовать собственный класс списка в json?
public class DemoList<K, V>
{
private List<SomeItem<K, V>> _listItems;
public DemoList()
{
_listItems = new List<SomeItem<K, V>>();
}
public Int32 Count
{
get { return _listItems.Count; }
}
public void Add(SomeItem<K, V> item)
{
_listItems.Add(item);
}
public SomeItem<K, V> this[int index]
{
get { return _listItems[index]; }
}
}
Код SomeItem:
public class SomeItem<K, V>
{
private K _key;
private V _value;
public SomeItem(K key, V value)
{
_key = key;
_value = value;
}
public K Key
{
get { return _key; }
set { _key = value; }
}
public V Value
{
get { return _value; }
set { _value = value; }
}
}
Когда я добавить некоторые значения в демонстрационном списке:
DemoList<String, String> dl = new DemoList<string, string>();
dl.Add(new SomeItem<string, string>("bla1", "diebla1"));
dl.Add(new SomeItem<string, string>("bla2", "diebla2"));
dl.Add(new SomeItem<string, string>("bla3", "diebla3"));
dl.Add(new SomeItem<string, string>("bla4", "diebla4"));
Теперь я хотел бы преобразовать это в json, используя NewtonSoft.Json ... вот так:
JsonSerializerSettings serializerSettings = new JsonSerializerSettings();
serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
var jsonContent = JsonConvert.SerializeObject(dl, serializerSettings);
Это приводит к следующему JSon:
{"Count":4}
JSON Я надеялся на что-то вроде:
{
"items": [
{ "bla1": "diabla1"},
{"bla2": "diabla2"},
{"bla3": "diabla3"},
{"bla4": "diabla4"}
]
}
Любые идеи?
Я знаю, ссылки часто нахмурились, но http://james.newtonking.com/archive/2009/10/23/efficient-json-with-json-net-reducing-serialized-json-size – RoughPlace
Если быть честным, Я в последнее время возился с большим количеством JSON с C#, и мне было намного проще построить строку, чем пытаться использовать JSON.Net. Слишком много проблем, особенно когда я пытался получить JSON.Parse в JavaScript или Google Charts, чтобы узнать мои вещи. После того, как строка была построена, я просто очистил вызывающую страницу и напишу форматированный JSON. Если вам нравится эта идея, я отправлю фрагмент кода, где я это сделаю. –