从json调用Javascript函数

时间:2014-01-29 13:16:57

标签: javascript android jquery json android-webview

大家好我在android中调用WebView上的javascript函数。我发送的JSON数据会将值传递给html。 我的JSON数据采用以下格式,我使用的在线工具进行了检查。

{"Results":{"Number of Tests":"2","Latency(avg)":"17","Failure":"0%","Latitude":"12° 55' 35.5872''  N","Longitude":"77° 36' 4.16916''  E","Latency(max)":"18","Latency(min)":"17"},"TestStaus":"Passed","Test":"Game Test"}

我使用以下代码使用jquery在html中显示已解析的结果。

var jsonObject = JSON.stringify(vk);
document.write(jsonObject); 
$.each($.parseJSON(jsonObject), function(k, v)
{
     document.write("<tr><td>" + k + "</td><td>" + v + "</td></tr>");
 });

它以下列方式给我输出

  1. 参数值
  2. 结果[对象对象]
  3. TestStatus通过
  4. 测试游戏测试
  5. 请帮助您阅读所有结果。为什么它是读对象。

2 个答案:

答案 0 :(得分:1)

结果是对象,因此它显示为[对象对象]。您可以通过以下方式执行此操作:

   function printEach(jsonObject) {
        $.each(jsonObject, function(k, v)
        {
            if(typeof v === 'object') {
                printEach(v);
            } else {
                console.log("<tr><td>" + k + "</td><td>" + v + "</td></tr>");
            }        
        });
    }

    var vk = {"Results":{"Number of Tests":"2","Latency(avg)":"17","Failure":"0%","Latitude":"12° 55' 35.5872''  N","Longitude":"77° 36' 4.16916''  E","Latency(max)":"18","Latency(min)":"17"},"TestStaus":"Passed","Test":"Game Test"};
    var jsonObject = JSON.stringify(vk); 
    printEach($.parseJSON(jsonObject));

你可以看到小提琴http://jsfiddle.net/58grs/1/

答案 1 :(得分:1)

只需使用递归。您需要能够处理多维对象。另外,我通常只使用jquery用于DOM或AJAX。对于这样的事情,你可能不需要它。

你的Json

   var vk = {"Results":{
     "Number of Tests":"2",
     "Latency(avg)":"17",
     "Failure":"0%",
     "Latitude":"12° 55' 35.5872''  N",
     "Longitude":"77° 36' 4.16916'' E","Latency(max)":"18",
     "Latency(min)":"17"
      },
     "TestStaus":"Passed",
     "Test":"Game Test"};

递归函数

     function drawJSON(obj){
      for(var key in obj){
      if(typeof obj[key] === 'object'){
       drawJSON(obj[key]);
       continue;
      }
      document.write("<div><span>" + key + "</span><span>" + obj[key] + "</span> </div>");
      }
    }

    drawJSON(vk);

<强> DEMO