admin管理员组

文章数量:1431037

I hope my question is not as stupid as I think it is...

I want to extract (the value of) a single variable from an JSONarray. I have this jquery code

$(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);           
        }
      });
    });
  });

the content of data looks like this ("MyMessage" and "MyName" are values written in a simple form from user):

[{"message":"MyMessage","name":"MyName"}]

the var "entry" should give (more or less) following output at the end:

"Send from -MyName- : -MyMessage-"

I'm not able to extract the single array values from data. I tried things like that:

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

but that gives "Send from undefined: undefined"

Hope you can help me with that.

I hope my question is not as stupid as I think it is...

I want to extract (the value of) a single variable from an JSONarray. I have this jquery code

$(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);           
        }
      });
    });
  });

the content of data looks like this ("MyMessage" and "MyName" are values written in a simple form from user):

[{"message":"MyMessage","name":"MyName"}]

the var "entry" should give (more or less) following output at the end:

"Send from -MyName- : -MyMessage-"

I'm not able to extract the single array values from data. I tried things like that:

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

but that gives "Send from undefined: undefined"

Hope you can help me with that.

Share Improve this question edited Aug 31, 2014 at 15:25 Ehsan Sajjad 62.6k16 gold badges112 silver badges170 bronze badges asked Jun 29, 2014 at 16:53 zwifzwif 1953 silver badges13 bronze badges 3
  • 3 Should it not be data[0]->message? – Lucky Soni Commented Jun 29, 2014 at 16:54
  • 3 @LuckySoni You mean data[0].message? – Scimonster Commented Jun 29, 2014 at 16:56
  • @Scimonster lol yes, doing a lot of PHP these days :) – Lucky Soni Commented Jun 29, 2014 at 16:58
Add a ment  | 

2 Answers 2

Reset to default 5

you can do like this to get first item of array:

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

console.log(msg );

SAMPLE FIDDLE

UPDATE:

as you are using $.post you will need to explicitly parse response as 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 );

      });

To access an array you use the [] notation

To access an object you use the . notation

So in case of [{JSON_OBJECT}, {JSON_OBJECT}]

if we have the above array of JSON objects in a variable called data, you will first need to access a particular Json Object in the array:

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

Then to access the properties of the JSON Object we need to do it like so:

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

本文标签: javascriptextract single variable from JSON arrayStack Overflow