Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 处理node.js中soap web服务调用的字符串响应的最佳方法_Javascript_Node.js_String_Node Soap - Fatal编程技术网

Javascript 处理node.js中soap 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值的最佳

这里是新手问题。我正在使用node soap调用node.js中的web服务调用,并得到类似于以下内容的响应:

{ 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实际上返回了一个我可以使用的对象。谢谢你的帮助和建议。