【发布时间】:2014-05-15 20:10:27
【问题描述】:
大家好,我正在努力将多个数组发布到 .net Web 服务这里是我的 Web 服务的签名。
<WebMethod()> _
Public Function Lib_Processor(ByVal w_vendor As String(), _
ByVal w_invoice As String(), _
ByVal w_invdate As String(), _
ByVal w_amount As Decimal(), _
ByVal w_account As String(), _
ByVal w_fund As String(), _
ByVal w_org As String(), _
ByVal w_prog As String(), _
ByVal w_adrsstyp As String(), _
ByVal w_adrss_seq As String(), _
ByVal w_Row As String(), _
ByVal w_bank As String(), _
ByVal w_user As String(), _
ByVal w_addl_info As String()) As List(Of GetErrors)
我正在循环一个表并将所有值放入对象中,然后使用 json.stringfy 正确创建要发送到服务的对象。
像这样。
var invoice = JSON.stringify({ w_invoice:w_invoice });
var vendor = JSON.stringify({ w_vendor: w_vendor });
var invdate = JSON.stringify({ w_invdate:w_invdate });
var amount = JSON.stringify({ w_amount:w_amount });
var fund = JSON.stringify({ w_fund:w_fund });
var org = JSON.stringify({ w_org:w_org });
var prog = JSON.stringify({ w_prog: w_prog });
var account = JSON.stringify({ w_account: w_account });
var adrsstyp = JSON.stringify({ w_adrsstyp:w_adrsstyp });
var adrss_seq = JSON.stringify({ w_adrss_seq:w_adrss_seq });
var Row = JSON.stringify({ w_Row:w_Row });
var bank = JSON.stringify({ w_bank:w_bank });
var user = JSON.stringify({ w_user:w_user });
var addl_info = JSON.stringify({ w_addl_info: w_addl_info });
然后我调用我的服务来发送数组。
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
data: '{w_vendor:"' + w_vendor + '",w_invoice:"' + w_invoice + '",w_invdate:"'+w_invdate + "}",
//data: "{"+vendor, invoice, invdate, amount,account,fund,org,prog,adrsstyp,adrss_seq,Row,bank,user,addl_info +"}",
// "{"+ vendor+invoice+invdate+amount+account+fund+org+prog+adrsstyp+adrss_seq+Row+bank+user+addl_info+"}"
url: "ServiceApUtils.asmx/Lib_Processor",
dataType: "json",
success: respond,
error: function (e) { $('.result').html("An Error Occured"); }
});
然而这惨遭失败,我可以理解为什么,因为我只是试图将许多 json 对象发送到 1 服务。我怎样才能解决这个问题?我试过只做一个对象,比如
var thisInvoice = {INVOICE:INVOICE}
基本上
var dto = { 'INVOICE': INVOICE };
var PnJ = JSON.stringify(dto);
但这不起作用。如何正确调整此对象以发送到我的服务中? 任何帮助将不胜感激。
【问题讨论】:
-
请解释为什么最后一个例子“不起作用”,会发生什么?
-
你为什么将 json 字符串放在 json 字符串中?为什么不只有一个 json 字符串?这种结构没有意义。这就是您基本上生成的内容:
{w_vendor:"{\"w_vendor\":\"somevalue\"}"}由于w_vendor周围没有双引号,它本身是 #1 无效的 json,而 #2 是嵌套的 json 字符串,这很可能不是您想要的。 -
你是对的,凯文感谢您指出我的错误。你能提出一个解决方案吗?我知道我没有正确创建 json 字符串,但一个例子会有很长的路要走。
标签: javascript json jquery