Json数据检索jquery

json data retrieve by jquery

本文关键字:jquery 检索 数据 Json      更新时间:2023-09-26

如何通过jquery循环获得info1或info2的每个信息的id。例如,我想从info1中获得id 1,然后id 1中的所有信息与inf2相似。我需要在浏览器中显示输出。

   var data = {
    "info1": {
        "1": {
            "clientname": "ruhul yahoo",
            "clientemail": "ruhul080@yahoo.com",
            "clientusername": "ruhulya"
        },
        "2": {
            "clientname": "kaosar yahoo",
            "clientemail": "kaosar080@yahoo.com",
            "clientusername": "kaosar"
        }
    },
    "info2": {
        "3": {
            "id": "24",
            "receiver": "5",
            "content": "chat system",
            "time": "2015-08-19 12:09:19"
        },
        "4": {
            "id": "23",
            "receiver": "4",
            "content": "chat system",
            "time": "2015-08-19 12:09:19"
        }
    },
}

提前感谢。

迭代json数组并像下面的代码那样访问对象。

 var data = {
    "info1": {
        "1": {
            "clientname": "ruhul yahoo",
            "clientemail": "ruhul080@yahoo.com",
            "clientusername": "ruhulya"
        },
        "2": {
            "clientname": "kaosar yahoo",
            "clientemail": "kaosar080@yahoo.com",
            "clientusername": "kaosar"
        }
    },
    "info2": {
        "3": {
            "id": "24",
            "receiver": "5",
            "content": "chat system",
            "time": "2015-08-19 12:09:19"
        },
        "4": {
            "id": "23",
            "receiver": "4",
            "content": "chat system",
            "time": "2015-08-19 12:09:19"
        }
    },
};

for(var j in data){
   for(var k in data[j]){
      console.log(data[j][k]); 
  }
}

如果运行上面的示例,浏览器的控制台将记录以下对象:

    Object {clientname: "ruhul yahoo", clientemail: "ruhul080@yahoo.com", clientusername: "ruhulya"}
    Object {clientname: "kaosar yahoo", clientemail: "kaosar080@yahoo.com", clientusername: "kaosar"}
    Object {id: "24", receiver: "5", content: "chat system", time: "2015-08-19 12:09:19"}
   Object {id: "23", receiver: "4", content: "chat system", time: "2015-08-19 12:09:19"}

然后您可以像访问普通对象一样访问这些值console.log(data[j][k].clientname);

这个函数将在对象中找到变量名的第一个实例。如果你需要在一个特定的路径中找到一个变量,你可以很容易地修改这个函数。当然,这个函数通过了您提供的测试用例。

function findVar(data, varName) {    
    for (var i in data) {
        if (i === varName) return data[i];
        if (typeof (data[i]) === 'object') {
            var findResult = findVar(data[i], varName)
            if (typeof(findResult) !== 'undefined') 
            {
                return findResult;
            }
        }
    }
    return undefined;
}

首先,这不是一个有效的JSON,在最后一个{之前删除最后一个,

其次,将其解析为JSON并获取信息
data.info1[1].clientname

var data = JSON.parse('{"info1":{"1":{"clientname":"ruhul yahoo","clientemail":"ruhul080@yahoo.com","clientusername":"ruhulya"},"2":{"clientname":"kaosar yahoo","clientemail":"kaosar080@yahoo.com","clientusername":"kaosar"}},"info2":{"3":{"id":"24","receiver":"5","content":"chat system","time":"2015-08-19 12:09:19"},"4":{"id":"23","receiver":"4","content":"chat system","time":"2015-08-19 12:09:19"}}}');
alert(data.info1[1].clientname);
alert(data.info1[2].clientname);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

你可以像这样遍历这个对象

for(var i in data){
    for(var j in data[i]){
        console.log(data[i][j]);
    }
}