Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中解析Json结果_Javascript_Json - Fatal编程技术网

如何在Javascript中解析Json结果

如何在Javascript中解析Json结果,javascript,json,Javascript,Json,我有json结果,我有代码,但它只在唯一的键上工作 在我的数据中,每个值都有不同的键 请帮帮我 { "images": [ { "time": 2.86091, "transaction": { "status": "Complete", "subject": "test2", "confidence": 0.77, "gallery_n

我有json结果,我有代码,但它只在唯一的键上工作 在我的数据中,每个值都有不同的键
请帮帮我

{
    "images": [
    {
        "time": 2.86091,
        "transaction":
        {
            "status": "Complete",
            "subject": "test2",
            "confidence": 0.77,
            "gallery_name": "gallerytest1",
        },
        "candidates": [
        {
          "subtest1": "0.802138030529022",
          "enrollment_timestamp": "1416850761"
        },
        {
          "elizabeth": "0.802138030529022",
          "enrollment_timestamp": "1417207485"
        },
        {
          "elizabeth": "0.777253568172455",
          "enrollment_timestamp": "1416518415"
        },
        {
          "elizabeth": "0.777253568172455",
          "enrollment_timestamp": "1416431816"
        }
        ]
    } ]
}
我想从中解析所有CATIDATE及其值 伊丽莎白=0.77777
subtest1=0.802138030529022

JSON已经为Javascript“解析”,因为JSON表示Javascript对象符号。 如果您的问题是不知道如何循环处理JSON对象的候选对象,那么以下是您的操作方法:

var candidates = jsonObject.images[0].candidates
for (var key in candidates) {
        alert(jsonObject[key]);
}

如果json字符串中有错误,请检查以下行:
“gallery\u name”:“gallerytest1”,
字符
是问题所在

解析的代码示例:

var data = JSON.parse(jsonString);
alert(data["images"][0]["candidates"][0]["subtest1"]);
更新:

下面是一个如何使用dinamic属性的示例

    var jsonData = JSON.parse(jsonString);

        for(i=0; i < jsonData["images"].length; i++) { // foreach image
            var candidates = jsonData["images"][i]["candidates"]; // array of candidates

            for (j = 0; j < candidates.length; j++) { // foreach candidate
                var candidate = candidates[j]; // single candidate

                for (var key in candidate){ // foreach candidate property

                    // this if condition is required when working with for loop on this way.
                    // for more visit http://stackoverflow.com/questions/9329446/for-each-over-an-array-in-javascript
                    if (typeof candidate[key] === 'function') {
                       continue;
                    }
                    alert("Key: " + key + "\nValue: " + candidate[key]);
                }
            }
        }
var jsonData=JSON.parse(jsonString); 对于(i=0;i只需将您的
jsonObject
引用到变量
var jsonData
,然后根据您的
json
结构,使用简单循环迭代复杂的
jsonObject

var jsonData = {.....}  // Your JSON Object that you added in your Question.
这里
jsonData
包含复杂的
jsonObject
现在正在迭代json元素

for(i=0; i < jsonData.images.length; i++){ //iterate throughout the Images Node Array.

    var candidates = obj.images[i].candidates; //Get the Candidate Node of each Image.

    for(j=0; j < candidates.length; j++){ //iterate throughout the Candidates Node Array.

       console.log(candidates[j]); // get the each Candidate to print on Console log of Web Browser.
  }
for(i=0;i
这是在
javascript
中使用
json
的一种简单方法,因为不需要任何第三方库来访问
数据。从任何复杂的
json
。只需遍历数组即可。谢谢@user1199396这不是json,您也不用“解析它”。这是一个JavaScript对象,您正在访问它。无论如何,当您说我要解析所有CATIDATE及其值时,elizabeth=0.77777 subtest1=0.802138030529022,我无法理解。0.777777从何而来?我如何知道您要检索哪个elizabeth值?subtest1
是什么意思?我的每个候选项的键对象是不同的,所以它如何迭代每个候选对象的y键是不同的,所以它如何使用for循环进行迭代这就是为什么您必须使用循环而不是自己指定键的原因。只需按照我的答案中的指定使用for each循环。您不需要键名称(因为变量
Key
包含此项)每个候选对象的键都不同,所以它是如何迭代的