#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 (хотя он выглядит похожим). Моя точка зрения: только потому, что он выглядит одинаково, не делает его одинаковым.