如何从json stringify数组获取所需的输出

时间:2018-07-16 05:50:29

标签: javascript json ajax

使用此代码-:

后,我的数组如下所示:
var array=xmlhttrequest.responseText;

console.log(array);

["{\"result\":{\"isvalid\":true,\"address\":\"3EL5SKSjEzFQDBmXA5JFbsZu48vKnNSdDH\",\"scriptPubKey\":\"a9148aa3d53255b44655f82d163f37ecb68057f2edf487\",\"ismine\":false,\"iswatchonly\":false,\"isscript\":true},\"error\":null,\"id\":\"curltest\"}\n"]

我想要isvalid的值,如何获得这个值。

3 个答案:

答案 0 :(得分:1)

这是一个奇怪的回应。这是一个字符串化数组,该数组包含一个项目,它是另一个字符串化对象。这是一个选择:

const responseText = String.raw`["{\"result\":{\"isvalid\":true,\"address\":\"3EL5SKSjEzFQDBmXA5JFbsZu48vKnNSdDH\",\"scriptPubKey\":\"a9148aa3d53255b44655f82d163f37ecb68057f2edf487\",\"ismine\":false,\"iswatchonly\":false,\"isscript\":true},\"error\":null,\"id\":\"curltest\"}\n"]`;
const [ stringItem ] = JSON.parse(responseText);
const itemObj = JSON.parse(stringItem);
const isvalid = itemObj.result.isvalid;
console.log(isvalid);

注意:在进行这样的测试时,必须使用String.raw,以便将单个反斜杠解释为原义的反斜杠,而不是不必要的转义符

答案 1 :(得分:1)

整个内容都是一个数组,正如您所看到的,它包装在[]中。内部内容是一个字符串,因此您需要JSON.parse才能转换为对象。这是您将如何获得它的JSON.parse(myData[0]).result.isvalid

enter image description here

var myData = ["{\"result\":{\"isvalid\":true,\"address\":\"3EL5SKSjEzFQDBmXA5JFbsZu48vKnNSdDH\",\"scriptPubKey\":\"a9148aa3d53255b44655f82d163f37ecb68057f2edf487\",\"ismine\":false,\"iswatchonly\":false,\"isscript\":true},\"error\":null,\"id\":\"curltest\"}\n"];

console.log("Is Valid: "+JSON.parse(myData[0]).result.isvalid);

答案 2 :(得分:0)

使用JSON.parse

var obj = JSON.parse(array);

但是我会在使用string.replace之前尝试消除所有不必要的字符:

var json = array.replace("\", "");