在javascript中从json获取价值

Dar*_*ech 4 javascript json

嗨,我有一个简单的JSON输出:

"{
   \"max_output_watts\": 150, 
   \"frame_length_inches\": \"62.20\",
   \"frame_width_inches\": \"31.81\"
 }"
Run Code Online (Sandbox Code Playgroud)

我在一个函数中使用它:

...
$.getJSON(pop_model_dims_url, {model_id: selected}, function(data, jqXHR){
              alert(data.max_output_watts);
          });
...
Run Code Online (Sandbox Code Playgroud)

警报现在只是一个占位符,但我不明白为什么警报值是'未定义'.如果我做:

...
$.getJSON(pop_model_dims_url, {model_id: selected}, function(data, jqXHR){
              alert(data);
          });
...
Run Code Online (Sandbox Code Playgroud)

我按预期得到了完整的json转储.

任何帮助非常感谢.

I H*_*azy 5

由于您alert(data);为您提供了完整的JSON转储,这可能意味着JSON已在服务器上进行了双重编码.

jQuery会为你解析一次,但是你需要再次解析它.

$.getJSON(pop_model_dims_url, {model_id: selected}, function(data, jqXHR){
    data = $.parseJSON(data);
    alert(data.max_output_watts);
});
Run Code Online (Sandbox Code Playgroud)

当然这不是一个正确的解决方案.正确的解决方案是将其修复在服务器上.

一旦你完成了,你将不再需要$.parseJSON了.