【问题标题】:How to return and display json data with getJSON properly?如何用getJSON正确返回和显示json数据?
【发布时间】:2013-04-24 20:29:00
【问题描述】:

文件“zip.json”: { "zip11111": "城市 1", “zip99999”:“城市 2” }

javascript:

jQuery(document).ready(function() {
$("#textbox1zip").change(function() {
    $.getJSON('zip.json', function(data) {

    /* each of the following code blocks don't work when exchanged for each other:

    1 zipcode = "zip" + $("#textbox1zip").val();
    * $('#textbox2city').val( data.zipcode ); -----> call silently dropped

    2 zipcode = 'zip99999';
    * $('#textbox2city').val( data.zipcode ); -----> call silently dropped

    3 zipcode = "zip" + $("#textbox1zip").val();
    * alert( data.zipcode ); -----> returns 'undefined'
    */

    /* but each of these blocks here works:
    4 $('#textbox2city').val( data.zip99999 ); ------> ok

    5 alert( data.zip99999 ); -----> ok

    6 zipcode = 'zip99999';
    * $('#textbox2city').val( zipcode ); ------> ok

    7 zipcode = "zip" + $("#textbox1zip").val();
    * $('#textbox2city').val( zipcode ); ------> ok
    */
    });
});
});

我希望从 textbox1zip 中获取的值将适当的值从“zip.json”返回到 textbox2city。我想使用getJSON。大概很简单,但是我看不出来……

【问题讨论】:

  • 只需使用console.log(data) 准确查看返回的内容,然后根据该对象编写
  • 我会添加括号。不过也谢谢!

标签: jquery json getjson postal-code


【解决方案1】:

试试这个:

var zipcode = 'zip99999';   // or 'zip11111'
$('#textbox2city').val( data[zipcode] );

var zipcode = "zip" + $("#textbox1zip").val();
$('#textbox2city').val( data[zipcode] );

现在,这个alert( data.zipcode ); -----> returns 'undefined'

发生这种情况是因为 json 对象只有两个键 zip11111zip99999。因此,data.zip11111data.zip99999 有效,而 data.zipcode 无效,因为没有名称为 zipcode 的密钥。

【讨论】:

  • 工作!我理解这个解释。非常感谢!
  • 确实如此!你的回答速度也给我留下了深刻的印象。
  • 这是因为我经常在 SO 中遇到这个问题,所以我也已经知道解决方案了 :)
  • GJ,花时间解释一下。我会认为它是CS。对不起,大声笑。 +1 给你好先生!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
  • 1970-01-01
  • 2013-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多