Я столкнулся с проблемой сериализации объекта в JSON для соответствия имени параметра вызова функции WCF. Проблема состоит в том, чтобы сопоставить имя параметра, то есть входящая строка JSON должна иметь начальное значение с тем же именем, что и параметр, передаваемый в функции, например.
"{\"GetComplexDataResult\":{\"BoolValue\":true,\"StringValue\":\"Hello World!\"}}"
Это моя функция WCF, которую я вызываю в моем клиенте, и, как вы можете видеть, имя параметра такое же, как возвращаемое "GetComplexDataResult"
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
String SaveData(CompositeType GetComplexDataResult);
Проблема, которая возникает, когда я пытаюсь сериализовать свой объект, используя либо Microsoft System.Web.Script.Serialization.JavaScriptSerializer
, либо любая другая библиотека (например, Json.NET)
, она возвращает только мне {\ "BoolValue \": true, \ "StringValue \ ": \" Hello World! \ "}
, даже если я передаю объект того же класса" CompositeType "(это код на стороне клиента), например
CompositeType GetComplexDataResult= new CompositeType();
GetComplexDataResult.BoolValue = true;
GetComplexDataResult.StringValue = "Hello World";
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(patchVersion);
У меня вопрос: как получить эту строку JSON
"{\"GetComplexDataResult\":{\"BoolValue\":true,\"StringValue\":\"Hello World!\"}}"
вместо
{\"BoolValue\":true,\"StringValue\":\"Hello World!\"}
, просто передав мой объект в парсер JSON. Я могу объединить его вручную после создания строки JSON, но это займет слишком много времени. Есть ли парсер, решающий эту проблему.