JSON - 如何解析它?

时间:2014-09-02 09:53:19

标签: javascript jquery arrays json

我刚刚对这个回复有疑问。据说如果我想从响应中选择项目,它必须是一个数组值。

"telegraphicTransferBankMap": {
        "BOA BEJ, JKT": "0330301",
        "BPD KALBAR SYARIAH, PTK": "1239922",
        "ANDARA, DPSR": "4660019",
        "GANESHA HAYAM WURUK, JKT": "1610017",
...
}

实际上一定是这样的吗? (如果我错了,请告诉我)

"telegraphicTransferBankMap": [
            {"BOA BEJ, JKT": "0330301"},
            {"BPD KALBAR SYARIAH, PTK": "1239922"},
            {"ANDARA, DPSR": "4660019"},
            {"GANESHA HAYAM WURUK, JKT": "1610017"},
    ...
    ]

我的代码

var ul = $('#telegraphicTransferBankMap');
    var html ='';
    for (var key in telegraphicTransferBankMap) {
        if (telegraphicTransferBankMap.hasOwnProperty(key)) {
            telegraphicTransferBankMapItem = telegraphicTransferBankMap[key];
            html += '<option value="'+telegraphicTransferBankMapItem.xxxxxx+'">'+telegraphicTransferBankMapItem.yyyyyyy+'</option>';
        }
    }
    ul.append(html);

然后我想把telegraphicTransferBankMapItem.xxxxxx作为bankId和telegraphicTransferBankMapItem.yyyyyy作为bankName。

请指教。感谢。

2 个答案:

答案 0 :(得分:0)

截至您的代码:

  if (telegraphicTransferBankMap.hasOwnProperty(key)) {
        telegraphicTransferBankMapItem = telegraphicTransferBankMap[key];

像您的第一个定义那样的对象是预期的 - 并且足够

要将其添加到选项列表中,只需执行

   html += '<option value="'+key+'">'+telegraphicTransferBankMapItem+'</option>';

答案 1 :(得分:0)

使用你的第一个json并改变你的循环,

var telegraphicTransferBankMap = {
    "BOA BEJ, JKT": "0330301",
    "BPD KALBAR SYARIAH, PTK": "1239922",
    "ANDARA, DPSR": "4660019",
    "GANESHA HAYAM WURUK, JKT": "1610017",
}

for (var key in telegraphicTransferBankMap) {
    if (telegraphicTransferBankMap.hasOwnProperty(key)) {
        bank = telegraphicTransferBankMap[key];
        html += '<option value="' + bank + '">' + key + '</option>';
    }
}

Live Demo

此外,您应该将银行ID作为您的json中的密钥而不是银行名称。