关于JSON.parse()的问题

来源:3-4 作业题

qq_痴心欲_0

2018-04-24 17:11:49

<input type="text">
 <ul>
  <li></li>
  <li></li>
  <li></li>
 </ul>
 <script>
  var input=document.getElementsByTagName("input")[0];
  var show=document.getElementsByClassName("show")[0];
  var li=document.getElementsByTagName("li");
  input.addEventListener("keyup",function(){
   AjaxShow();
  })
  function AjaxShow(){
   var xhr=new XMLHttpRequest();
   xhr.open('GET','json/Show.json');
   xhr.onreadystatechange=function(){
    var str=xhr.response;
    if(xhr.readyState==4){
     JSON.parse(str,function(k,y){
      if(k === '') return ;
      else if(k==input.value){
       li[0].innerHTML=y;
      }
     })
    }
   }
   xhr.send();
  }
 </script>

//这是json

{
 "a":{"b":"e","c":"f","d":["G","H"]}
}

不知道为什么,d键值对应的值是“,”,a键值对应的是object,每次设置数组,键值对应的都是逗号,该怎么改正呢

写回答

2回答

怎么都被占用了呢

2018-04-25

可以这么写http://img.mukewang.com/climg/5adfef1d0001453e08430238.jpg

0

怎么都被占用了呢

2018-04-24

你是想设置键值d对应的数组吗,可以参考一下下面的小demo

    var str='{"a":{"b":"e","c":"f","d":["G","H"]}}';

var aa=JSON.parse(str);

console.log(aa.a.d);


0
hq_痴心欲_0
h 我打算在input里面输入某值,如果存在键值那么把键值对应的值放入li标签中,不知道为什么,当键值的值是一个数组时候,键值对应的不是这个数组的内容,而且一个“,”,我想问这情况怎么处理
h018-04-24
共1条回复

0 学习 · 4826 问题

查看课程