Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/16.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_Amazon Web Services - Fatal编程技术网

Javascript 如何使用此服务器响应访问嵌套的JSON对象

Javascript 如何使用此服务器响应访问嵌套的JSON对象,javascript,json,amazon-web-services,Javascript,Json,Amazon Web Services,我试图解析从代理lambda函数检索到的响应。我正在使用Ajax调用。尝试获取嵌套的Json时失败 这是来自服务器的响应: { "vehicles": "{\"language\":\"fr-FR\",\"id\":\"10107\",\"make\":\"Panoz\",\"model\":\"Roadster\",\"generation\":\"AIV\",\"yearFrom\":\"1996\",\"yearTo\":\"1999\",\"serie\":\"Roadster\

我试图解析从代理lambda函数检索到的响应。我正在使用Ajax调用。尝试获取嵌套的Json时失败

这是来自服务器的响应:

{
    "vehicles": "{\"language\":\"fr-FR\",\"id\":\"10107\",\"make\":\"Panoz\",\"model\":\"Roadster\",\"generation\":\"AIV\",\"yearFrom\":\"1996\",\"yearTo\":\"1999\",\"serie\":\"Roadster\",\"trim\":\"4.6 MT (309 ch)\",\"vehicle\":{\"make\":\"Panoz\",\"model\":\"Roadster\",\"generation\":\"AIV\",\"yearFrom\":\"1996\",\"yearTo\":\"1999\",\"serie\":\"Roadster\",\"trim\":\"4.6 MT (309 ch)\",\"id\":\"10107\",\"bodyWork\":{\"rearTrack\":\"Roadster\",\"width\":\"2\",\"cargoCompartmentVolume\":\"4040\",\"curbWeight\":\"1950\",\"length\":\"1190\",\"numberOfSeater\":\"2655\",\"minTrunkCapacity\":\"1700\",\"maxTrunkCapacityLitre\":\"1620\",\"bodyType\":\"Non disponible\",\"height\":\"Non disponible\",\"fullWeight\":\"Non disponible\",\"cargoCompartment\":\"Non disponible\",\"loadingHeight\":\"1160\",\"frontRearAxleLoad\":\"130\",\"permittedRoadTrainWeight\":\"140\",\"payload\":\"140\",\"frontTrack\":\"Non disponible\",\"wheelbase\":\"Non disponible\",\"groundClearance\":\"Non disponible\"},\"engine\":{\"strokeCycle\":\"Essence\",\"cylinderBore\":\"4601\",\"presenceOfIntercooler\":\"309\",\"boostType\":\"de 5 800\",\"valvesPerCylinder\":\"407\",\"injectionType\":\"Distribué injection\",\"cylinderLayout\":\"V-forme\",\"maximumTorque\":\"8\",\"maxPowerAtRpm\":\"Non disponible\",\"turnoverOfMaximumTorque\":\"90\",\"enginePower\":\"90\",\"capacity\":\"4\",\"engineType\":\"à 4 800\",\"numberOfCylinders\":\"Non disponible\"},\"gearBoxAndHandling\":{\"gearboxType\":\"Manuel\",\"numberOfGear\":\"Arrière\",\"driveWheels\":\"Non disponible\",\"turningCircle\":\"5\"},\"operatingCharacteristics\":{\"cruisingRange\":\"95\",\"fuel\":\"250\",\"emissionStandards\":\"13\",\"fuelTankCapacityLitre\":\"Non disponible\",\"accelerationZeroToHundred\":\"4\",\"maxSpeed\":\"de 330 à 430\",\"cityDrivingFuelConsumptionPer100kmLitre\":\"Non disponible\",\"highwayDrivingFuelConsumptionPer100\":\"43\",\"mixedDrivingFuelConsumptionPer100\":\"10\"},\"suspensionAndBrakes\":{\"rearBrakes\":\"Disques ventilés\",\"frontBrakes\":\"Disques ventilés\",\"backSuspension\":\"Sur bras transversaux\",\"frontSuspension\":\"Barre stabilisatrice\"}},\"dateCreated\":1560071289997,\"dateUpdated\":1560071289997}",
    "language": "fr-FR",
    "id": "10107"
}
指令vehicle.make返回正确的值。 但是,当试图接近车辆时,我收到一个未定义的答案


当尝试对返回的数据进行字符串化时,我看到了完整正确的字符串。这就好像JSON.parse停止了对第一级属性的解析,无法解析嵌套对象,因此无法解析未定义的对象。

您访问它是错误的,正如@str所说,您要查找的值位于
vehicle.vehicle.bodyWork
。第一个
vehicle
存储整个对象,第二个具有嵌套的
vehicle
对象,并且具有
bodyWork
键。

您访问它时出错,正如@str所说,您要查找的值位于
vehicle.vehicle.bodyWork
。第一个
vehicle
存储整个对象,第二个有嵌套的
vehicle
对象,还有
bodyWork
键。

vehicle.vehicle.bodyWork
第一个车辆有一个“s”,我不认为这个问题是重复的,因为我显然试图按我应该的方式访问嵌套对象。我可能在这里遗漏了一个微妙之处。“我显然试图访问嵌套对象”-这正是重复问题所涉及的内容。@SoufianAboulfaouz如果你这样做
console.log(vehicle)
你应该知道你错在哪里了。
vehicle.vehicle.bodyWork
第一辆车有一个“s”我不认为这个问题是重复的,因为我显然试图获得对嵌套对象的访问权。我可能在这里遗漏了一个微妙之处。“我显然试图访问嵌套对象”-这正是重复问题所涉及的内容。@soufinaboulfaouz如果您执行
console.log(vehicle)
您应该可以看到哪里出了问题。
var vehicle = JSON.parse(data.vehicles);
                console.log("vehicle: " + vehicle);
                console.log("make: " + vehicle.make);
                console.log("bodyWork: " + vehicle.bodyWork);