0

使用此代码后,我的数组如下所示-:

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 的值,我怎样才能得到这个。

4

3 回答 3

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以便将单个反斜杠解释为文字反斜杠而不是不必要的转义字符

于 2018-07-16T05:55:52.933 回答
1

整个东西是一个数组,你可以看到它被包裹在 [] 中。里面的内容是一个字符串,所以需要JSON.parse转换成一个对象。这是你将如何得到它JSON.parse(myData[0]).result.isvalid

在此处输入图像描述

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);

于 2018-07-16T05:58:15.243 回答
0

使用JSON.parse

var obj = JSON.parse(array);

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

var json = array.replace("\", "");
于 2018-07-16T05:54:48.870 回答