最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - extracting data from json string - Stack Overflow

programmeradmin3浏览0评论

I am new to using javascript as well as json. I need to extract certain sections from json for processing the data.

{
  "status": "SUCCESS",
  "status_message": "blah blah blah",
  "pri_tag": [
      {
          "tag_id": 1,
          "name": "Tag1"
      },
      {
          "tag_id": 2,
          "name": "Tag2"
      },
      {
          "tag_id": 3,
          "name": "Tag3"
      },
      {
          "tag_id": 4,
          "name": "Tag4"
      }
  ]
}

From the above json message I need to extract pri_tag section so that the extracted json should look like below:

[
  {name:'Tag1', tag_id:1},
  {name:'Tag2', tag_id:2},
  {name:'Tag3', tag_id:3},
  {name:'Tag4', tag_id:4},
  {name:'Tag5', tag_id:5},
  {name:'Tag6', tag_id:6}
];

How to get this done using javascript? Please help me. Thanks in advance.

Thanks friends. I was able to get this working. Thanks once again.

I am new to using javascript as well as json. I need to extract certain sections from json for processing the data.

{
  "status": "SUCCESS",
  "status_message": "blah blah blah",
  "pri_tag": [
      {
          "tag_id": 1,
          "name": "Tag1"
      },
      {
          "tag_id": 2,
          "name": "Tag2"
      },
      {
          "tag_id": 3,
          "name": "Tag3"
      },
      {
          "tag_id": 4,
          "name": "Tag4"
      }
  ]
}

From the above json message I need to extract pri_tag section so that the extracted json should look like below:

[
  {name:'Tag1', tag_id:1},
  {name:'Tag2', tag_id:2},
  {name:'Tag3', tag_id:3},
  {name:'Tag4', tag_id:4},
  {name:'Tag5', tag_id:5},
  {name:'Tag6', tag_id:6}
];

How to get this done using javascript? Please help me. Thanks in advance.

Thanks friends. I was able to get this working. Thanks once again.

Share Improve this question edited Mar 25, 2014 at 8:17 Pradeep asked Mar 25, 2014 at 7:57 PradeepPradeep 8137 gold badges16 silver badges26 bronze badges 1
  • 1 @super Hornet gave you the perfect answer! Is your JSON message already loaded as a JSON Object (if you declared it like you did above in your JS, it is). If you load the message with AJAX, you need to add var json_message = JSON.parse(my_json_message_variable) – Nicky Smits Commented Mar 25, 2014 at 8:12
Add a ment  | 

5 Answers 5

Reset to default 5

try this:

  var data={
  "status": "SUCCESS",
  "status_message": "blah blah blah",
  "pri_tag": [
  {
      "tag_id": 1,
      "name": "Tag1"
  },
  {
      "tag_id": 2,
      "name": "Tag2"
  },
  {
      "tag_id": 3,
      "name": "Tag3"
  },
  {
      "tag_id": 4,
      "name": "Tag4"
  }
  ]
  };

if you get the data from Ajax request you need to parse it like this:

  var newData=JSON.parse(data).pri_tag;

if not, you don't need to parse that:

  var newData=data.pri_tag;
var data={
  "status": "SUCCESS",
  "status_message": "blah blah blah",
  "pri_tag": [
      {
          "tag_id": 1,
          "name": "Tag1"
      },
      {
          "tag_id": 2,
          "name": "Tag2"
      },
      {
          "tag_id": 3,
          "name": "Tag3"
      },
      {
          "tag_id": 4,
          "name": "Tag4"
      }
  ]
}

use this code

var result=data.pri_tag;
for(var i in result)
{
    console.log(result[i]);
}

Try this

var foo = '{"status": "SUCCESS","pri_tag": [...]}'
var bar = JSON.parse(foo)
bar.pri_tag

Hopefully this helps someone, I have a scenario where retrieving JSON.parse(someJsonObject).someAttribute doesn't work. Alternatively, you can also extract attribute data using JSON.parse(someJsonObject)['someAttribute']:

Assuming you have a data variable containing the JSON object, result would hold what you expect (without using the same data variable):

var result = [];

for(var i = 0; i < data.pri_tag.length; i++){
    result.push({'name': data.pri_tag[i].name, 'tag_id': data.pri_tag[i].tag_id});
}

console.log(result);

Here you are a working example.

发布评论

评论列表(0)

  1. 暂无评论