javascript - jquery中如何打印json数组

标签 javascript jquery json

以下是我的 json 响应:

{"fname":"abc","lname":"xyz","email":"test@user.com","description":[{"city":"abcxyz","address":"AX","country":"US","date":"2020-02-01"},{"city":"abcxyz","address":"AX","country":"US","date":"2020-02 01"}], "city":"abcxyz","address":"DS","country":"US","Month":"12","Year":"2012"}

以下是我的代码:

success: function(data)
{                             
       var userinfo=eval(data);         
       alert(userinfo['fname1']; //display correct result
       alert(userinfo['description']['city']; //display undefined

       if(!$("#fname1").val())  $("#fname1").val(userinfo['fname']);
       if(!$("#lname1").val())  $("#lname1").val(userinfo['lname']);                                                     
}

在成功函数中,如果我尝试提醒 alert(userinfo['fname1'] ,那么它会向我显示正确的结果,即显示名称,但如果我尝试提醒 alert(userinfo ['description']['city'] 然后它在警报中向我显示未定义

然后我尝试使用 each 循环,但仍然不起作用

$.each(userinfo['description'], function() {
alert(userinfo'description']['city']; //not working
$("#city option[value="+userinfo['description']['city']+"]").attr("selected", "selected");
});   

以下是我的 html :

<select name="country" id="country">
        <?php
          foreach ($this->description as $country) {
        ?>
        <option value="<?php echo $country['country']; ?>" <?php echo ($this->params['country'] == $country['country']) ? "selected='selected'" : ""; ?>><?php echo $country['country']; ?></option>
         <?php }
         ?>
</select>

谁能告诉我我哪里出错了。谢谢。

最佳答案

你需要做:

alert(userinfo['description'][0]['city'];

userinfo['description'] 是一个数组。您需要首先按索引引用元素。一旦引用了该对象,就引用该属性

我认为没有任何需要eval。评估是一种不好的做法。你可以这样写:

var userinfo = data;

如果服务器发送了正确的 header (application/json) 或者您为 dataType 参数传递了 json,JQuery 就会解析响应。即使 dataType 的默认值也是智能猜测

关于javascript - jquery中如何打印json数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14000191/

相关文章:

jquery - 在 jQuery 中检查复选框最漂亮的方法是什么?

jquery - 固定元素的位置

ios - 从在线 JSON 文件更新 JSON 本地文件

java - E/Volley : com. android.volley.ParseError : org. json.JSONException:值{"results":[{

javascript - JavaScript 中的真值和假值

javascript - 在 PhoneGap 中只有一种 CSS 转换有效

javascript - 事件管理员批处理下拉列表已禁用未捕获的 ReferenceError : options is not defined

python - 从文本文件加载keras模型

javascript - 需要如何从 Viewdata 列表填充 javascript 数组的简单示例

javascript - 简单的所见即所得不起作用,原因不明