JSON - 从REST调用中提取调用

时间:2017-03-19 19:51:19

标签: javascript json

我正在使用具有rest API的第三方数据库。当我打电话时,我得到一个错误(我在我的情况下期待):

transaction.commit(function(err) {
if (err){
   var par = JSON.parse(err); \\ returns error: SyntaxError: Unexpected token E in JSON at position 0

   console.log(JSON.stringify(err));
   console.log(err);
   console.log('' + err);

  //First console.log return:  {"code":409,"metadata":{"_internal_repr":{}}}
  //Second console.log return:  { Error: entity already exists: app: "s~myapp"<br/>path <<br/>  Element {<br/>    type: "v"<br/>    name: "bob@gmail.com"<br/>  }<br/>><br/>
  //Third console.log returns:  Error: entity already exists: app: "s~myapp"<br/>path <<br/>  Element {<br/>    type: "v"<br/>    name: "bob@gmail.com"<br/>  }<br/>><br/>



}
{);

我需要提取错误字段和类型字段。我试图解析JSON然后去par.error或par.type来获取变量,但我无法解析对象因为我收到错误。 enter image description here

2 个答案:

答案 0 :(得分:1)

您显然拥有Error个对象,该对象具有message属性来提取消息字符串。

因此使用

err.message

获得它。

参考文献:

答案 1 :(得分:0)

根据您的结果,您获得的err参数似乎已经是对象而不是JSON字符串,因此您根本不需要解析它。

你应该可以毫无问题地获得err.code

你确实提到你需要获取错误类型 - 但这似乎根本不在该对象中(这就是为什么你在尝试时得到undefined的原因。

但是,通过使用err.Error,您应该能够获取错误字符串。

如果您不确定对象有哪些数据,可以尝试以下操作:

  1. 执行console.dir(err) - 这可以让您更好地了解err对象包含的内容。
  2. 只需调试到​​那一点,然后在err对象中查看。
  3. (最佳选项)检查平台/库API文档,它应该告诉您它返回的错误信息,以便您可以使用它。