使用此代码-:
后,我的数组如下所示: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的值,如何获得这个值。
答案 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
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("\", "");