Получение определенного значения из объекта json

#javascript #json

#javascript #json

Вопрос:

У меня есть объект json

например

 {
 "href":"Test",
 "commentID":"12334556778"
} 
  

Есть ли способ просто получить вторую строку, то есть «commentId»: «12334556778»
Я использую

 JSON.stringify(json)
  

Спасибо всем

Комментарии:

1. Ваш вопрос немного сбивает с толку. JSON.stringify предназначен для сериализации объектов JavaScript в JSON. «Объект JSON», который вы опубликовали, является результатом этой операции? В противном случае я не вижу, как эти два связаны. Неясно, получаете ли вы JSON или создаете JSON. Но в любом случае вам, вероятно, придется работать с объектами JavaScript, поэтому JSON здесь, похоже, неуместен.

Ответ №1:

Вы можете создать другой объект, содержащий только commentID свойство:

 var obj = {
    "href": "Test",
    "commentID": "12334556778"
};

var result = JSON.stringify({
    "commentID": obj.commentID
});
  

Ответ №2:

JSON.stringify принимает третий аргумент, который обрабатывает пробелы в выходных данных. Если третий аргумент присутствует и «соответствует действительности», будут вставлены разрывы строк, и каждый уровень будет иметь отступ, используя строковое значение аргумента или количество пробелов, если передается число. Используя этот метод, вы можете заставить браузер вставлять разрывы строк, а затем разделять эти разрывы строк в результате:

 var obj = {
        "href":"Test",
        "commentID":"12334556778"
    },
    arr = JSON.stringify(obj, null, 1).split("n");

alert(arr[2]);
//-> ' "commentID": "12334556778"'  

Рабочая демонстрация: http://jsfiddle.net/AndyE/ercRS / (требуются браузеры с JSON/trim)

Возможно, вы захотите обрезать любой начальный пробел или конечную запятую, но я оставлю это на ваше усмотрение.

Ответ №3:

если у вас есть объект JSON под рукой, просто используйте его, как если бы вы использовали массив.

 var jsonObject = {
   "href":"Test",
   "commentID":"12334556778"
}
alert(jsonObject['commentID']); // alerts 123445678
  

JSON.stringify() используется, если вы хотите отправить данные обратно на свой сервер.

Комментарии:

1. Это не объект JSON. Это объект JavaScript.

2. Поскольку JSON — это сокращение от обозначения объектов JavaScript , я сомневаюсь в этом.

3. Java также есть в JavaScript , но они никак не связаны. JSON — это формат данных с синтаксисом, аналогичным объектным литералам JavaScript. Объект JavaScript — это тип данных в JavaScript. Вы не можете смешивать эту терминологию.

4. @Felix правильно. JSON — это формат передачи данных. Не существует такого понятия, как «объект JSON», JSON может быть только строкой.

5. Может быть, но это не делает вас правым 😉 Другой пример: если вы говорите, что jsonObject содержит JSON, то я должен иметь возможность проанализировать его с JSON.parse помощью right? Но это невозможно. Другая аналогия может быть такой: var csv = "a", "b", "c" допустим JavaScript, но никто не скажет, что это CSV (хотя он выглядит похожим). Моя точка зрения: только потому, что он выглядит одинаково, не делает его одинаковым.