小编adn*_*har的帖子

序列化JSON字符串以匹配WCF服务功能参数

我正面临着在JSON中序列化对象以匹配WCF函数调用的参数名称的问题.问题是映射参数名称,即传入的JSON字符串应该具有与函数中传递的参数相同的起始值,例如

"{\"GetComplexDataResult\":{\"BoolValue\":true,\"StringValue\":\"Hello World!\"}}"
Run Code Online (Sandbox Code Playgroud)

这是我在我的客户端调用的WCF函数,你可以看到参数名称与返回的参数名称相同"GetComplexDataResult"

[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
String SaveData(CompositeType GetComplexDataResult);
Run Code Online (Sandbox Code Playgroud)

发生的问题是当我尝试使用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);
Run Code Online (Sandbox Code Playgroud)

我的问题是我如何获得这个JSON字符串

"{\"GetComplexDataResult\":{\"BoolValue\":true,\"StringValue\":\"Hello World!\"}}"
Run Code Online (Sandbox Code Playgroud)

代替

{\"BoolValue\":true,\"StringValue\":\"Hello World!\"}
Run Code Online (Sandbox Code Playgroud)

只需将我的对象传递给JSON解析器即可.我可以在生成JSON字符串后手动连接它,但这会花费太多时间来处理工作.有没有解决这个问题的解析器.

c# rest wcf json

6
推荐指数
1
解决办法
3033
查看次数

如何在C++中调用Rest服务?

我想从我的C++应用程序中调用用WCF编写的休息服务(它可以支持XML和JSON Web消息格式).

实现这一目标的最佳解决方案是什么?我见过一些实用程序(gsoap),它们为您创建用于调用Web服务的代理类.

我可以在不使用任何中间工具的情况下实现相同的功能 作为一个休息服务,它使用GET/PUT函数作为基本的HTTP函数,是否有任何C++库/解决方案可用于直接从c ++应用程序调用这些函数?

c++ rest wcf web-services

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

rest ×2

wcf ×2

c# ×1

c++ ×1

json ×1

web-services ×1