Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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_Jquery_Json - Fatal编程技术网

Javascript 从嵌套响应获取json值

Javascript 从嵌套响应获取json值,javascript,jquery,json,Javascript,Jquery,Json,我有下面的json返回。我希望得到汽车的所有价值,汽车。制造和汽车。价格。怎样才能做到呢?我试过了,但没用 $.each(jqXHR.responseJSON.ModelState(索引,值),函数(){ 警报(jqXHR.responseJSON.ModelState[index].value); });具有带JSON的变量: var obj= { "Message": "The request is invalid.", "ModelState": {

我有下面的json返回。我希望得到汽车的所有价值,汽车。制造和汽车。价格。怎样才能做到呢?我试过了,但没用

$.each(jqXHR.responseJSON.ModelState(索引,值),函数(){
警报(jqXHR.responseJSON.ModelState[index].value);

});具有带JSON的变量:

var obj= {

        "Message": "The request is invalid.",
        "ModelState": { 
            "car": [
                "Required property 'Make' not found in JSON. Path '', line 1, position 57."
            ],
            "car.Make" : [
                "The Make field is required."
            ], 
            "car.Price": [
                "The field Price must be between 0 and 200000."
            ]
        }
    };
对于通过ModelState的循环访问:

for (var prop in obj.ModelState){
    for (var i=0; i<obj.ModelState[prop].length; i++){
        console.log(obj.ModelState[prop][i]);    
    }    
}
for(对象模型状态中的变量属性){

对于(var i=0;i您将得到如下3个值:

alert(json.ModelState["car"]);
alert(json.ModelState["car.Make"]);
alert(json.ModelState["car.Price"]);
这也适用于汽车

alert(json.ModelState.car);
由于其他属性的名称中包含“.”,因此它在属性car上查找属性Make,而不是名为car.Make的属性。因此,我们需要使用字符串键

请注意,在本文中,最后两个未定义。如果要在json中使用,最好不要使用“.”属性名

若要打印modelState和所有汽车中的所有数据,请假设您可以有多个数据。更像是这样:

alert(json.ModelState["car"]);
alert(json.ModelState["car.Make"]);
alert(json.ModelState["car.Price"]);


ModelState
是一个单独的对象,在
car
数组中,在
car.Make
car.Price
数组中,循环
ModelState.car
这可能显示了失败的(?)输出。为了帮助您解决这个问题,需要输入数据结构。访问car:
myObject.ModelState.car[0]
这是您想要的答案吗?我需要循环使用它,而不是像上面所说的那样一个接一个地显式获取它。ModelState将只有一个对象,因此这将打印每个属性,但car、car.Make和car.Price是数组