Работа с JSONPath и JavaScript
Описание
На этой странице вы узнаете, как работать с JSONPath и JavaScript.
Что такое JSONPath
JSONPath - это легкая библиотека для поиска и извлечения разделов из данных JSON. Может использоваться как с JavaScript, так и с PHP.
Получить JSONPath
Для работы с JSONPath и JavaScript вам необходимо скачать jsonpath.js. Вы можете скачать его с http://code.google.com/p/jsonpath/.
После загрузки вам нужно включить указанный файл JS на веб-странице, и вы готовы использовать его.
Синтаксис:
jsonPath(obj, expr [, args])
Параметры:
параметр | Описание |
---|---|
объект (объект | массив) | Этот параметр представляет Объект, представляющий структуру JSON. |
expr (строка) | Этот параметр представляет строку выражения JSONPath. |
args (объект | неопределенный) | Этот параметр представляет Объект, управляющий оценкой пути и выводом. На момент написания статьи поддерживается только один участник. |
args.resultType ("VALUE" | "PATH") | По умолчанию этот параметр заставляет результат совпадать со значениями. Остальные нормализованные выражения пути. |
Возвращаемые значения
Возвращаемое значение | Описание |
---|---|
массив | Массив, содержащий либо значения, либо нормализованные выражения пути, которые соответствуют выражению пути, указанному в качестве входных данных. |
ложный | Возвращается, если совпадений не найдено. |
Пример использования JSONPath с JavaScript
JSON, с которым мы будем работать, выглядит следующим образом:
{ "MovieDatabase": {
"movie": [
{ "name":"The Change-Up",
"genre": "comedy",
"director": "David Dobkin",
"Facebook_like": 252
},
{ "name":"Rise of the Planet of the Apes",
"genre": "SciFi",
"director": "Rupert Wyatt",
"Facebook_like": 472
},
{ "name":"30 Minutes or Less",
"genre": "adventure",
"director": "Ruben Fleischer",
"Facebook_like": 114
},
{ "name":"Final Destination 5",
"genre": "Horror",
"director": "Steven Quale",
"Facebook_like": 241
}
]
}
}
Код JavaScript для поиска и извлечения различных частей вышеупомянутых данных JSON выглядит следующим образом (обратите внимание, что, поскольку мы будем использовать метод из анализатора json.js, вам необходимо загрузить и включить его тоже):
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JavaScript JSONPath example | JSON tutorial | w3resource</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="/JSON/json.js"></script>
<script type="text/javascript" src="/JSON/jsonpath.js"></script>
</head>
<body>
<h1>This is an example of JavaScript with JSONPath</h1>
<script type="text/javascript">
var json = { "MovieDatabase": {
"movie": [
{ "name":"The Change-Up",
"genre": "comedy",
"director": "David Dobkin",
"Facebook_like": 252
},
{ "name":"Rise of the Planet of the Apes",
"genre": "SciFi",
"director": "Rupert Wyatt",
"Facebook_like": 472
},
{ "name":"30 Minutes or Less",
"genre": "adventure",
"director": "Ruben Fleischer",
"Facebook_like": 114
},
{ "name":"Final Destination 5",
"genre": "Horror",
"director": "Steven Quale",
"Facebook_like": 241
}
]
}
};
result = "";
result += jsonPath(json, "$.MovieDatabase.movie[*].director").toJSONString() + "<br />";
//find all directors
result += jsonPath(json, "$..director").toJSONString() + "<br />";
//find all directors
result += jsonPath(json, "$.MovieDatabase.*").toJSONString() + "<br />";
//find all movies
result += jsonPath(json, "$.MovieDatabase..Facebook_like").toJSONString() + "<br />";
//find all facebook lies of all the movies
result += jsonPath(json, "$..movie[(@.length-1)]").toJSONString() + "<br />";
//the last movie in data
result += jsonPath(json, "$..movie[-1:]").toJSONString() + "<br />";
//the last movie in data
result += jsonPath(json, "$..movie[0,1]").toJSONString() + "<br />";
//first two movies
result += jsonPath(json, "$..movie[:3]").toJSONString() + "<br />";
//first three movies
result += jsonPath(json, "$..movie[?(@.genre)]").toJSONString() + "<br />";
//all movies with genre
result += jsonPath(json, "$..movie[?(@.Facebook_like>200)]").toJSONString() + "<br />";
//movies with facebook like more that 200
result += jsonPath(json, "$..*").toJSONString() + "\n";
// all members in the JSON document
document.write(result);
</script>
</body>
</html>
Жить
Посмотрите пример работы с JSONPath и JavaScript онлайн .
Предыдущий: Учебник по модулю Python JSON
Далее: Работа с JSONPath и PHP
Новый контент: Composer: менеджер зависимостей для PHP , R программирования