从JSON数组中提取单个变量

时间:2014-06-29 16:53:30

标签: javascript jquery arrays json var

我希望我的问题不像我想的那样愚蠢......

我想从JSONarray中提取单个变量(的值)。我有这个jquery代码

$(document).ready(function(){
    $("#gb_form").submit(function(e){
      e.preventDefault();
      $.post("guestbook1.php",$("#gb_form").serialize(),function(data){
        if(data !== false) {
            var entry = data;
            $('.entries').prepend(entry);           
        }
      });
    });
  });

数据内容如下所示(" MyMessage"" MyName"是用户以简单形式编写的值):

  

[{"消息":" MyMessage""名称":" MYNAME"}]

var"条目"应该在最后给出(或多或少)以下输出:

"从-MyName-发送:-MyMessage - "

我无法从数据中提取单个数组值。我尝试过这样的事情:

var message = data['message'];
var name = data['name']
var entry = "Send from" + name + ":" +message;

但是这给了"发送来自undefined:undefined"

希望你能帮助我。

2 个答案:

答案 0 :(得分:5)

你可以这样做以获得数组的第一项:

var msg = "Send from"+data[0].name + " "+data[0].message;

console.log(msg );

SAMPLE FIDDLE

更新:

当您使用 $。发布时,您需要以json的形式显式解析响应:

$.post("guestbook1.php",$("#gb_form").serialize(),function(data){
        var response = jQuery.parseJSON(data);

        var msg = "Send from"+response [0].name + " "+response [0].message;
        console.log(msg );

      });

答案 1 :(得分:0)

要访问数组,请使用[]表示法

要访问对象,请使用.表示法

如果是[{JSON_OBJECT}, {JSON_OBJECT}]

如果我们在名为data的变量中有上述JSON对象数组,您首先需要访问数组中的特定Json对象:

data[0] // First JSON Object in array
data[1] // Second JSON Object in array.. and so on

然后要访问JSON对象的属性,我们需要这样做:

data[0].name // Will return the value of the `name` property from the first JSON Object inside the data array
data[1].name // Will return the value of the `name` property from the second JSON Object inside the data array