У меня есть служба WCF REST, которая имеет ресурс, который содержит несколько типизированных полей, а затем поле, которое может быть массивом объектов. Я хочу, чтобы поле в нашей службе сериализовало это поле, как если бы оно было строкой. Пример:Сериализация и десериализация части объекта JSON как строки с WCF
[DataContract]
public class User
{
[DataMember]
public long ID;
[DataMember]
public string Logon;
[DataMember]
public string Features;
}
Когда пользователи нашего API POST новый объект User, я хотел бы, чтобы они были в состоянии сделать что-то использовать, как это, как тело:
{
"ID" : 123434,
"Logon" : "MyLogon",
"Features" : [
{ "type": "bigFeature", "size": 234, "display":true },
{ "type": "smFeature", "windowCount": 234, "enableTallness": true}
]
}
вместо
{
"ID" : 123434,
"Logon" : "MyLogon",
"Features" : "[
{ \"type\": \"bigFeature\", \"size\": 234, \"display\":true },
{ \"type\": \"smFeature\", \"windowCount\": 234, \"enableTallness\": true}
]"
}
На стороне обслуживания я собираюсь сохранить массив «Особенности» в текстовом блоге JSON в базе данных, и когда я верну вызов объекта в GET, я бы хотел, чтобы он был в оба конца.
Итак, вы хотите взять строку JSON, а затем сможете ее сериализовать/десериализовать через вызов функции? – Pseudonym
Нет, я хотел использовать DataContract и DataMember для определения данных, но я хотел бы, чтобы одно из полей фактически было массивом JSON, что позволило бы содержать любой объект JSON. Это позволило бы мне конвертировать туда и обратно. – bpeikes
Какой сериализатор вы используете - 'DataContractJsonSerializer' или Json.NET? – dbc