Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.09.2014, 14:23
Новичок на форуме
Отправить личное сообщение для Ooops Посмотреть профиль Найти все сообщения от Ooops
 
Регистрация: 29.09.2014
Сообщений: 7

парсить Json
Здравствуйте.
мне дан url страницы:
http://109.202.0.226/adapter-web/rest/adapter-list

необходимо распарсить это все дело, используя js.

в интернете много примеров, но единственное, что у меня заработало:

<!DOCTYPE html>
<html>
<head>
<meta charset = "UTF-8"/>
</head>
<body>
<script type="text/javascript">
function hello(){	
var jsontext = '{"id":"atc-roiv-roiv","style":"async","name":"РОИВ-РОИВ Запрос","category":"Внутрирегиональные","supportsSubjectSignature":true}';
var contact = JSON.parse(jsontext);
document.write(contact.id + ", " + contact.style + ", " + contact.name + ", " + contact.category + ", " + contact.supportsSubjectSignature);
}
</script>
<hr>
<script type="text/javascript">
    hello();
</script>
</body>
</html>


Но дело в том, что это одна строка, которую я ввел вручную.
А как я понял нам даны 3 массива:
-forward
-reverse
-dynamic

Тоесть, я распарсил только одну строчку 1-ого массива.
Как мне распарсить все массивы?
Спасибо)
Ответить с цитированием
  #2 (permalink)  
Старый 29.09.2014, 14:30
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Ooops
Как мне распарсить все массивы?
По аналогии...
Ответить с цитированием
  #3 (permalink)  
Старый 29.09.2014, 14:36
Новичок на форуме
Отправить личное сообщение для Ooops Посмотреть профиль Найти все сообщения от Ooops
 
Регистрация: 29.09.2014
Сообщений: 7

Я как подумал, чтобы распарсить все, что есть нужно сначала распарсить массивы, а затем, то что в них, но ничего не вышло:
<!DOCTYPE html>
<html>
<head>
<meta charset = "UTF-8"/>
</head>
<body>
<script type="text/javascript">
function hello(){	
var jsontext = '"dynamic":[{"id":"f857ef0f-0954-45d1-90ca-8de92c4b086b","style":"async","name":"мойтест","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"aca14187-5605-49ce-94e8-f70fa7046ac1","style":"async","name":"MyFirstTest","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"2e98bb00-3358-452e-9064-b6338951188b","style":"async","name":"Сведения о детях","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"ccd2c6b5-19de-4105-b774-2b81ffa260df","style":"async","name":"Тест 24","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"31693600-5713-47bf-b297-77a370ff47bf","style":"async","name":"Test position fixed","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"30774a9b-4753-4bc9-b3ba-1377b5660af7","style":"async","name":"тест 24/2","category":"Внутрирегиональные","supportsSubjectSignature":true},{"id":"deb9a67d-259e-429e-9e09-b1c337290c5b","style":"async","name":"Тест 24/3","category":"Внутрирегиональные","supportsSubjectSignature":true},{"id":"271f5d1d-dbf1-4773-9401-e1361b50fe33","style":"async","name":"Сведения о семье","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"e2526078-85fa-4cf7-91cd-ac649e2a3b48","style":"async","name":"Тестирование тикетов 782 и 784","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"0624ab77-7de3-4ab1-b6c6-5c1d1a56041d","style":"async","name":"Тестирование тикета ADP-785","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"59365ded-469e-4440-97d5-e5bc6895ed3e","style":"async","name":"Запрос градостроительного плана","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"17889682-d912-4396-8390-346099cf1fdd","style":"async","name":"MAIS Integration","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"5a92ef8b-0c04-4c26-b2f9-145af0cbc90c","style":"async","name":"Тест от 23.07","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"413cbed5-276d-4ac9-9d2c-bc26e8ccb8e7","style":"async","name":"Даша_тест","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"a83944f7-a6b5-4189-9f73-222af1d02656","style":"async","name":"Тест","category":"Внутрирегиональные","supportsSubjectSignature":false}]}';


var contact = JSON.parse(jsontext);
var contact1 = JSON.parse(contact.dynamic);
document.write(contact1.id + ", " + contact1.style + ", " + contact1.name + ", " + contact1.category + ", " + contact1.supportsSubjectSignature);

</script>
<hr>
<script type="text/javascript">
    hello();
</script>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 29.09.2014, 14:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Ooops, нужно правильно понимать, как работать с массивами и как с объектами...
Тогда и проблем не будет.
Ответить с цитированием
  #5 (permalink)  
Старый 29.09.2014, 14:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Ooops
var jsontext = '"dynamic":
Это вообще не "начало" ни для объекта... Ни для массива...

Для понимания - сделай простенький тестовый пример. На нем можно будет продемонстрировать работу с массивами и объектами...
Ответить с цитированием
  #6 (permalink)  
Старый 29.09.2014, 14:55
Новичок на форуме
Отправить личное сообщение для Ooops Посмотреть профиль Найти все сообщения от Ooops
 
Регистрация: 29.09.2014
Сообщений: 7

var json = '{"name":"Java","lastName":"Script"}';
var data = JSON.parse( json );
alert( data.name + data.lastName);
Ответить с цитированием
  #7 (permalink)  
Старый 29.09.2014, 15:45
Новичок на форуме
Отправить личное сообщение для Ooops Посмотреть профиль Найти все сообщения от Ooops
 
Регистрация: 29.09.2014
Сообщений: 7

Сообщение от ksa Посмотреть сообщение
Это вообще не "начало" ни для объекта... Ни для массива...

Для понимания - сделай простенький тестовый пример. На нем можно будет продемонстрировать работу с массивами и объектами...
Получилось для одного массива!!! Уже что-то)
<!DOCTYPE html>
<html>
<head>
<meta charset = "UTF-8"/>
</head>
<body>
<script type="text/javascript">
function hello(){	
var jsontext = '{"dynamic":[{"id":"f857ef0f-0954-45d1-90ca-8de92c4b086b","style":"async","name":"мойтест","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"aca14187-5605-49ce-94e8-f70fa7046ac1","style":"async","name":"MyFirstTest","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"2e98bb00-3358-452e-9064-b6338951188b","style":"async","name":"Сведения о детях","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"ccd2c6b5-19de-4105-b774-2b81ffa260df","style":"async","name":"Тест 24","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"31693600-5713-47bf-b297-77a370ff47bf","style":"async","name":"Test position fixed","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"30774a9b-4753-4bc9-b3ba-1377b5660af7","style":"async","name":"тест 24/2","category":"Внутрирегиональные","supportsSubjectSignature":true},{"id":"deb9a67d-259e-429e-9e09-b1c337290c5b","style":"async","name":"Тест 24/3","category":"Внутрирегиональные","supportsSubjectSignature":true},{"id":"271f5d1d-dbf1-4773-9401-e1361b50fe33","style":"async","name":"Сведения о семье","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"e2526078-85fa-4cf7-91cd-ac649e2a3b48","style":"async","name":"Тестирование тикетов 782 и 784","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"0624ab77-7de3-4ab1-b6c6-5c1d1a56041d","style":"async","name":"Тестирование тикета ADP-785","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"59365ded-469e-4440-97d5-e5bc6895ed3e","style":"async","name":"Запрос градостроительного плана","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"17889682-d912-4396-8390-346099cf1fdd","style":"async","name":"MAIS Integration","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"5a92ef8b-0c04-4c26-b2f9-145af0cbc90c","style":"async","name":"Тест от 23.07","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"413cbed5-276d-4ac9-9d2c-bc26e8ccb8e7","style":"async","name":"Даша_тест","category":"Внутрирегиональные","supportsSubjectSignature":false},{"id":"a83944f7-a6b5-4189-9f73-222af1d02656","style":"async","name":"Тест","category":"Внутрирегиональные","supportsSubjectSignature":false}]}';


var jsonData = JSON.parse(jsontext);
for (var i = 0; i < jsonData.dynamic.length; i++) {
    var counter = jsonData.dynamic[i];
    document.write(counter.id + ", " + counter.style + ", " + counter.name + ", " + counter.category + ", " + counter.supportsSubjectSignature);
}

}
</script>
<hr>
<script type="text/javascript">
    hello();
</script>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 29.09.2014, 16:04
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Ooops
Получилось для одного массива
Оно и дальше не так сложно...

for (var i = 0; i < jsonData.['dynamic'].length; i++) {...}

Идея понятна?

Или можно воспользоваться тем же
http://javascript.ru/for..in
Ответить с цитированием
  #9 (permalink)  
Старый 29.09.2014, 16:07
Новичок на форуме
Отправить личное сообщение для Ooops Посмотреть профиль Найти все сообщения от Ooops
 
Регистрация: 29.09.2014
Сообщений: 7

Сообщение от ksa Посмотреть сообщение
Оно и дальше не так сложно...

for (var i = 0; i < jsonData.['dynamic'].length; i++) {...}

Идея понятна?

Или можно воспользоваться тем же
http://javascript.ru/for..in
Так, ну я сделал вот так :
for (var j = 0; j < jsonData.forward.length; j++){
    var counter1 = jsonData.forward[j]
	 document.write(counter1.id + ", " + counter1.style + ", " + counter1.name + ", " + counter1.category + ", " + counter1.supportsSubjectSignature);
}
for (var f = 0; f < jsonData.reverse.length; f++){
    var counter2 = jsonData.reverse[f]
	 document.write(counter2.id + ", " + counter2.style + ", " + counter2.name + ", " + counter2.category + ", " + counter2.supportsSubjectSignature);
	 }
	 for (var i = 0; i < jsonData.dynamic.length; i++) {
    var counter = jsonData.dynamic[i];
    document.write(counter.id + ", " + counter.style + ", " + counter.name + ", " + counter.category + ", " + counter.supportsSubjectSignature);


Тоесть для каждого массива прогнал, думаю можно и сразу по всем по одному циклу?

Мне еще это все нужно распихать в таблицу созданной в HTML.
И считать не строкой вручную, а через url.
Подскажите что-нибудь?
Ответить с цитированием
  #10 (permalink)  
Старый 29.09.2014, 16:09
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Ooops
Так, ну я сделал вот так
Одним циклом можно. for ... in
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу распарсить JSON. gorenie jQuery 3 29.11.2013 22:26
Как парсить JSON на клиенте? uakoB Серверные языки и технологии 2 01.08.2013 09:41
Проблемы с jqGrid и JSON massacra_panda Библиотеки/Тулкиты/Фреймворки 1 08.10.2012 16:44
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10