在javascript中解析数组响应
我正在处理一个API请求,在那里我得到一个http.response,它是一个包含一个json对象的数组。但当我试图解析它或将其字符串化时,我会使用以下代码:在javascript中解析数组响应,javascript,arrays,json,parsing,undefined,Javascript,Arrays,Json,Parsing,Undefined,我正在处理一个API请求,在那里我得到一个http.response,它是一个包含一个json对象的数组。但当我试图解析它或将其字符串化时,我会使用以下代码: var response = http.response; try{ var json = JSON.stringify(response); logInfo("status: " + json.status); } catch(e) { logInfo(e); } …我得到此日志的原因是:状态:未定义 如何定
var response = http.response;
try{
var json = JSON.stringify(response);
logInfo("status: " + json.status);
} catch(e) { logInfo(e); }
…我得到此日志的原因是:状态:未定义
如何定义该值?该值取自我网页上的用户,可以更改
这是我从请求中得到的响应:
[
{
"status": "DONE",
"plannedDeliveryDate": "2017-06-27",
"orderId": 2112312,
"userId": 123123
}
]
这是我的GET代码的其余部分:
loadLibrary("cus:json3.js");
var query = xtk.queryDef.create(
<queryDef operation="select" schema={vars.targetSchema}>
<select>
<node expr="@userNumber"/>
</select>
</queryDef>
);
var res = query.ExecuteQuery();
//Buffer the auth key
var buffer = new MemoryBuffer();
buffer.fromString("username:password", "utf-8");
for each (var line in res) {
var http = new HttpClientRequest();
http.header["Authorization"] = "Basic " + buffer.toBase64(); //Basic Auth
this.baseURL = "https://url..../data?user_id=" + line.@userNumber;
http.url = this.baseURL;
http.method = "GET"; //The GET request
http.execute();
var response = http.response;
try{
var json = JSON.parse(response);
logInfo("status: " + json[0].status);
} catch(e) { logInfo(e); }
}
loadLibrary(“cus:json3.js”);
var query=xtk.queryDef.create(
);
var res=query.ExecuteQuery();
//缓冲验证密钥
var buffer=newmemorybuffer();
fromString(“用户名:密码”,“utf-8”);
对于每个(以res表示的var行){
var http=new-HttpClientRequest();
http.header[“Authorization”]=“Basic”+buffer.toBase64();//Basic Auth
this.baseURL=”https://url..../data?user_id=“+行。@userNumber;
http.url=this.baseURL;
http.method=“GET”//GET请求
http.execute();
var-response=http.response;
试一试{
var json=json.parse(响应);
logInfo(“状态:+json[0]。状态);
}catch(e){logInfo(e);}
}
解析您使用的json
JSON.parse(response);
如果要解析JSON,为什么要使用
stringify
而不是parse
?此外,我们还需要查看其余的获取代码,因为这很可能与从异步操作返回数据有关。@Andy这有什么关系?它仍然无法工作,因为他试图访问没有索引的数组对象?嗯,这很重要,因为如果数据没有被解析,任何访问数据的代码都无法工作。我同意我会更新答案什么是HttpClientRequest
?
JSON.stringify() does the opposite, it converts data into json