Javascript 处理node.js中soap web服务调用的字符串响应的最佳方法
这里是新手问题。我正在使用node soap调用node.js中的web服务调用,并得到类似于以下内容的响应:Javascript 处理node.js中soap web服务调用的字符串响应的最佳方法,javascript,node.js,string,node-soap,Javascript,Node.js,String,Node Soap,这里是新手问题。我正在使用node soap调用node.js中的web服务调用,并得到类似于以下内容的响应: { AuthenticateResult: { PrimaryKeyId: '0', ValidateOnly: false, OperationResult: 'Succeeded', SessionId: 'abc45235435345' } } 如果OperationResult为“Successed”,从响应中提取SessionId值的最佳
{ AuthenticateResult:
{ PrimaryKeyId: '0',
ValidateOnly: false,
OperationResult: 'Succeeded',
SessionId: 'abc45235435345' } }
如果OperationResult为“Successed”,从响应中提取SessionId值的最佳方法是什么?我猜我可以用indexof和substring来实现,但即使对像我这样的新手来说,这听起来也不是一个好的解决方案。假设输入存储为字符串,并且是一致的(即不在冒号左边加引号的JSON),您只需使用正则表达式将其转换为JSON字符串,然后使用
JSON.parse()
var input=“{AuthenticateResult:{\n”
+PrimaryKeyId:'0',\n
+ValidateOnly:错误,\n
+OperationResult:'成功',\n
+“SessionId:'abc45235435345'}}”;
//这将用“word”替换word:,并用“替换”
var json=input.replace(/(\w+):/g,“$1”:”).replace(/”/g,“”);
//这是你想要的东西
var obj=JSON.parse(JSON);
//只需打印JSON就可以了。
document.getElementById('result').innerHTML=json代码>
假设输入存储为字符串,并且是一致的(即不带冒号左边引号的JSON),您只需使用正则表达式将其转换为JSON字符串,然后使用JSON.parse()
var input=“{AuthenticateResult:{\n”
+PrimaryKeyId:'0',\n
+ValidateOnly:错误,\n
+OperationResult:'成功',\n
+“SessionId:'abc45235435345'}}”;
//这将用“word”替换word:,并用“替换”
var json=input.replace(/(\w+):/g,“$1”:”).replace(/”/g,“”);
//这是你想要的东西
var obj=JSON.parse(JSON);
//只需打印JSON就可以了。
document.getElementById('result').innerHTML=json代码>
在响应上使用JSON.parse从字符串创建对象。然后您可以使用点语法,例如response.OperationResult
@Saar这不是有效的JSON。@FelixKling您是对的如果此值作为字符串返回,您可以通过调用eval
实例化它,但是eval
被认为是一种非常糟糕的做法,因为响应可能是恶意/有害的代码。感谢您的回复。我确实尝试过JSON解析,但很快发现我的字符串的JSON格式不正确。我们正在寻找最优雅的解决方案来提取字符串,因此eval可能不是一个选项。请在响应上使用JSON.parse从字符串创建对象。然后您可以使用点语法,例如response.OperationResult
@Saar这不是有效的JSON。@FelixKling您是对的如果此值作为字符串返回,您可以通过调用eval
实例化它,但是eval
被认为是一种非常糟糕的做法,因为响应可能是恶意/有害的代码。感谢您的回复。我确实尝试过JSON解析,但很快发现我的字符串的JSON格式不正确。我正在寻找最优雅的解决方案来提取字符串,所以eval可能不是一个选项。事实证明,我犯了一个新手的大错误,节点soap实际上返回了一个我可以使用的对象。感谢所有的帮助和建议。事实证明,我犯了一个很大的新手错误,节点soap实际上返回了一个我可以使用的对象。谢谢你的帮助和建议。