这是到目前为止我得到的。请阅读代码中的注释。它包含我的问题。

var customer;   //global variable
function getCustomerOption(ddId){
      $.getJSON("http://localhost:8080/WebApps/DDListJASON?dd="+ddId, function(opts) {
           $('>option', dd).remove(); // Remove all the previous option of the drop down
           if(opts){
                customer = jQuery.parseJSON(opts); //Attempt to parse the JSON Object.
           }
      });
}

function getFacilityOption(){
      //How do I display the value of "customer" here. If I use alert(customer), I got null
}

这是我的json对象的外观:{"3":"Stanley Furniture","2":"Shaw","1":"First Quality"}。我最终想要的是,如果我传递密钥3,我想取回Stanley Furniture,如果我传递Stanley Furniture,我取回了3。由于3是customerId,而Stanley Furniture是customerName,在我的数据库中。

最佳答案

如果该servlet已经返回JSON(如URL所示),则不需要在jQuery的$.getJSON()函数中对其进行解析,而只需将其作为JSON处理。摆脱掉jQuery.parseJSON()。这会使情况变得更糟。 getFacilityOption()函数应用作$.getJSON()的回调函数,或者您需要在function(opts)(实际上是当前的回调函数)中编写其逻辑。

的JSON字符串

{"3":"Stanley Furniture","2":"Shaw","1":"First Quality"}

...按以下方式访问时将返回“Stanley Furniture”
var json = {"3":"Stanley Furniture","2":"Shaw","1":"First Quality"};
alert(json['3']);
// or
var key = '3';
alert(json[key]);

要了解有关JSON的更多信息,强烈建议阅读this article。要了解有关$.getJSON的更多信息,请检查its documentation

10-06 07:21