Значение JQuery в JSON - PullRequest
       3

Значение JQuery в JSON

1 голос
/ 23 февраля 2011

мне вернули этот json из моего вызова ajax

 [
{message:"haha", type:"error"}, 
{message:"nice work", type:"success"},
{message:"closed.", type:"success"}
  ]

и мне нужно выяснить, есть ли какой-либо из элементов типа ошибки. Теперь я знаю, что могу перебрать и разобраться, но мне интересно, есть ли функция, которая могла бы мне сказать, что мне нужно знать

Ответы [ 3 ]

3 голосов
/ 23 февраля 2011

Вам придется зацикливаться.Вы можете сделать это с помощью простого цикла или использовать jQuery.each, если хотите.

Не по теме : обратите внимание, что то, что вы цитировали, не является JSON .Это буквенное обозначение объекта.Чтобы быть допустимым JSON , имена ключей должны быть заключены в двойные кавычки:

[
    {"message":"haha", "type":"error"}, 
    {"message":"nice work", "type":"success"},
    {"message":"closed.", "type":"success"}
]

Некоторые парсеры "JSON" (особенно те, которые действительно являются замаскированными парсерами JavaScript), являются слабыми ипусть вам это сойдет с рук, но это становится все менее распространенным.

2 голосов
/ 23 февраля 2011

До разбора JSON вы можете проверить строку на совпадение.

var json = '[{"message":"haha","type":"error"},{"message":"nice work","type":"success"},{"message":"closed.","type":"success"}]'

if( json.indexOf('"type":"error"') > -1 ) {
    // there was an error somewhere
}

Если json немного свободен с пробелами вокруг ключей / значений, вы можете вместо этого использовать регулярное выражение для проверки.

2 голосов
/ 23 февраля 2011
var json = [
    { "message" : "haha",      "type" : "error"  }, 
    { "message" : "nice work", "type" : "success"},
    { "message" : "closed.",   "type" : "success"}
];

$.each(json, function(i, k) {
    if (k.type === "error") {
        // this is an error
        // `k.message` contains the expected message
        // `i` contains the index key of the array, in this case `0` 
    }
});

Примечание. Хотя в моем примере для выражения точки используются литералы Array и Object (вместо фактический текст JSON), вы должны убедиться, что действительные ключи JSON заключены в кавычки & sup1;. 1004 *

1 для @patrick. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...