Сериализовать List> как JSONC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Сериализовать List> как JSON

Сообщение Anonymous »

Я новичок в JSON, пожалуйста, помогите!

Я пытаюсь сериализовать List как JSON

В настоящее время:

[{"Key":"MyKey 1","Value":"MyValue 1"},{"Key":"MyKey 2","Value":"MyValue 2"}]


Ожидается:

[{"MyKey 1":"MyValue 1"},{"MyKey 2":"MyValue 2"}]


Я привел несколько примеров из этого и этого.

Это мой KeyValuePairJsonConverter: JsonConverter

public class KeyValuePairJsonConverter : JsonConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
List list = value as List;
writer.WriteStartArray();
foreach (var item in list)
{
writer.WriteStartObject();
writer.WritePropertyName(item.Key.ToString());
writer.WriteValue(item.Value.ToString());
writer.WriteEndObject();
}
writer.WriteEndArray();
}

public override bool CanConvert(Type objectType)
{
return objectType == typeof(List);
}

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
var jsonObject = JObject.Load(reader);
var target = Create(objectType, jsonObject);
serializer.Populate(jsonObject.CreateReader(), target);
return target;
}

private object Create(Type objectType, JObject jsonObject)
{
if (FieldExists("Key", jsonObject))
{
return jsonObject["Key"].ToString();
}

if (FieldExists("Value", jsonObject))
{
return jsonObject["Value"].ToString();
}
return null;
}

private bool FieldExists(string fieldName, JObject jsonObject)
{
return jsonObject[fieldName] != null;
}
}


Я вызываю его из метода WebService следующим образом

List valuesList = new List();
Dictionary valuesDict = SomeDictionaryMethod();

foreach(KeyValuePair keyValue in valuesDict)
{
valuesList.Add(keyValue);
}

JsonSerializerSettings jsonSettings = new JsonSerializerSettings { Converters = new [] {new KeyValuePairJsonConverter()} };
string valuesJson = JsonConvert.SerializeObject(valuesList, jsonSettings);


Подробнее здесь: https://stackoverflow.com/questions/415 ... ng-as-json
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Является ли `[] (std :: list и list) {return std :: move (list);} (list)` гарантированно оставить `list` yelm?
    Anonymous » » в форуме C++
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Назначьте ввод Map> выходу Map>
    Anonymous » » в форуме JAVA
    0 Ответы
    124 Просмотры
    Последнее сообщение Anonymous
  • Невозможно выполнить поиск в List<KeyValuePair>, сохраненном как строка json в БД, используя выражение в базовой структу
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Что необходимо передать для IEnumerable>>?
    Anonymous » » в форуме C#
    0 Ответы
    50 Просмотры
    Последнее сообщение Anonymous
  • Ошибка: put(java.lang.string, list) в хэш-карте нельзя применить к (java.util.list)
    Гость » » в форуме JAVA
    0 Ответы
    253 Просмотры
    Последнее сообщение Гость

Вернуться в «C#»