2016-10-21 7 views
0

В настоящее время в нашем проекте имеется определенный класс, который содержит описание строки.
Кроме того, у нас есть объект.C# - Объект с сериализованным ключом объекта как часть объекта

Object Foo { 
    Apple: {parts: 5}, 
    Description: theproblematicobject, 
    ,,,, 
} 

Описание установлено как строка типа. Таким образом, объект должен быть сериализован для назначения в качестве значения описания.

В конце мы возвращаем foo как JSONConvert.serializer (foo). После получения объекта foo красиво отформатирован JSON, но описание по-прежнему является сериализованной строкой.

Есть ли комбинации функций, которые я могу использовать, как я могу сериализовать проблематичный объект (так что он соответствует типу строки), и при десериализации по запросу он становится одним красиво отформатированным json, а не.

Результат:

"Name": "Friday, 21 October 2016 New...", 
    "Description": "{\"HoursList\":[],\"EmployeeFullname\":\"..........", 
    "SwipeLeftAction": null, 
    "SwipeLeftDescription": null, 
    "SwipeLeftColor": null, 
    "SwipeRightAction": null, 
    "SwipeRightDescription": null, 
    "SwipeRightColor": null, 
    "ClickAction": "uiweb/em......." 
} 

Желаемая:

"Name": "Friday, 21 October 2016 New...", 
    "Description": {"HoursList":[], 
        "EmployeeFullname" : ".........." 
       } 
    "SwipeLeftAction": null, 
    "SwipeLeftDescription": null, 
    "SwipeLeftColor": null, 
    "SwipeRightAction": null, 
    "SwipeRightDescription": null, 
    "SwipeRightColor": null, 
    "ClickAction": "uiweb/em......." 
} 

ответ

-1

Возможно, у вас есть какие-либо форматтера или что-то другое, что логика делают неправильный сериализации. Какую версию библиотеки вы используете?

Последние JsonConvert.SerializeObject хорошо работает.

Вот маленький пример:

private class Foo 
{ 
    public int Apple { get; set; } 
    public Description Description { get; set; } 
} 

private class Description 
{ 
    public int[] HoursList { get; set; } 
} 


var a = new Foo 
{ 
    Apple = 1, 
    Description = new Description 
    { 
     HoursList = new[] {1} 
    } 
}; 

var b = JsonConvert.SerializeObject(a); 

Результат хорошо отформатированный JSON строка:

{"Apple":1,"Description":{"HoursList":[1]}} 
+0

foo.Description относится к типу String (и мы не можем изменить его, не нарушая другие вещи). –

-1

Попробуйте это:

Сериализации проблематичного объекта в XML-строку вместо JSON, как показано здесь: Serialize an object to XML

Преобразование XML в JSON, как показано здесь: How to convert JSON to XML or XML to JSON?

+0

Если вы идете в нижний угол, по крайней мере, скажите мне, почему. –

+0

не я * смотря в это на самом деле –

+0

Awesome - надеюсь, что это поможет! –

0

Тип description - это строка. Вы можете ясно видеть это от самого JSON. Это означает, что вы возвращаете строку из любого автоматического десериализатора.

Если вы хотите, чтобы у него был объект, запустите второй десериализатор JSON в поле описания.