2011-05-07 45 views
0

我有一个是在C++ devloped Firefox浏览器插件,连接到扫描仪和retrievs数据传递复杂JavaScript对象到WCF使用JQuery

当在Web页上的按钮在用户点击(在ASP开发.net AJAX 3.5) 它通过JavaScript从扫描器中检索数据并发送到WCF服务(RESTful WCF并接受JSON消息格式)

问题是使用JQuery传递给浏览器的C++对象(单击按钮时)对象很复杂并且不匹配删除WCF服务(仅接受自定义对象作为输入;仅有一个参数)

问题

是否需要重建(在JQuery的掰开它和它的结构相匹配,以远程WCF服务,并且为了使用JSON.Stringfy()与jQuery AJAX来传递),这是从C++浏览器插件传递给对象WCF?

如果两者都具有不同的属性,可以在JQuery和远程WCF之间传递对象吗?

回答

0

如果它具有不同的属性,则不能传递该对象。你必须转换它(在JavaScript中)以匹配WCF期望的格式。 如果它是一个数组或属性名称必须更改,jquery的$.map可以帮助你。

但是,你不需要JSON.stringify,导致jquery的$.ajax为你编码对象。例如:

$.ajax({ 
    url: "url_of_wcf_service", 
    data: your_object 
}); 

your object将被自动编码。你会使用JSON.stringify的唯一情况是,如果你的WCF明确接受一个JSON字符串(但我不认为它的情况下),所以你会怎么做:

$.ajax({ 
    url: "url_of_wcf_service", 
    data: JSON.stringify(your_object) 
}); 

希望这有助于。干杯

+0

我使用https://github.com/douglascrockford/JSON-js中的Stringify()(Json2.js)现代浏览器(IE 9和Firefox 3.5或更高版本是否内置了stringify? – CShah 2011-05-07 14:00:50

+0

@CShah现代浏览器IE8 +有它内置。你只需要json2 IE浏览器<8 – Raynos 2011-05-07 14:13:22

+0

谢谢,最后一个问题我可以传递它作为字符串从JQuery和WCF侧解析(反序列化)字符串来获取数据吗?原因对象是大量的数据。 .. – CShah 2011-05-07 14:46:36