Damon
Damon

Reputation: 10809

navigating JSON with jQuery

I saw this answer dealing with getting data from JSON. I'm trying to do almost the same, but my JSON is structured differently as far as arrays/objects and I'm not sure how to parse it the same way.

My JSON is in this format and I'm trying to write a function to find certain elements based on the linked question, but without keys for the elements in the json, not sure how to target things. Or do I need to try and rework the out put of my json? (which is being created by json_encode from a modified codeigniter db query.

$(function() {
var json = [
  {

    "answer": [

      "4555"

    ],
    "answer_string": "4555|",
    "qid": "70",
    "aid": "742"
  }, 
 {

    "answer": [

      "monkeys",
      "badgers",
      "monkeybadgers"

    ],
    "answer_string": "monkeys|badgers|monkeybadgers|",
    "qid": "71",
    "aid": "742"
  }
];
    $.each(json[], function(i, v) {
        if (v.qid= "70") {
            alert(v.answer[0]);
            return;
        }
    });
});​

jsfiddle

I need to find answer[0] where qid matches a certain number.

Upvotes: 0

Views: 2322

Answers (2)

SadullahCeran
SadullahCeran

Reputation: 2435

You should give each only the name of the array:

$.each(ja, function(i, v) {

Use comparison instead of assignment inside if:

if (v.qid== "70") {

$(function() {
    var ja= [
      {
        "answer": [

          "4555"
        ],
        "answer_string": "4555|",
        "qid": "70",
        "aid": "742"
      }
    ];
    $.each(ja, function(i, v) {
        if (v.qid== "70") {
            alert(v.answer[0]);
            return;
        }
    });
});​

Updated Fiddle:

Upvotes: 0

aquinas
aquinas

Reputation: 23796

Your javascript is messed up. See updated fiddle:

http://jsfiddle.net/jQmyf/2/

Specifically: if (v.qid= "70") { that should be v.qid==

and $.each(json[] should just be $.each(json

Upvotes: 1

Related Questions