Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как в java парсить тексты javaScript? / 19 сообщений из 19, страница 1 из 1
27.03.2012, 20:52:11
    #37726244
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
Есть ли стандартный способ для распарсивания текстов javaScript? Т.е. типа жаваскрипт превращать в элементы или в массивы какие?
Допустим у меня есть код:
Код: java
1.
2.
3.
4.
5.
                        for ( Element e : doc.getElementsByAttributeValue("type", "text/javascript")) {
                            if (e.toString().contains(".initializeItemPage({")) {
                                System.out.println(e);   
                            }
                        }


Я пробежал по страничке html и нашел нужный мне жаваскрипт. Этот код вернет этот жаваскрипт:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<script type="text/javascript">
 <!--
$(function() {
$("#itemForm").initializeItemPage({

...
...
...

});
});
//-->
</script>


И дальше я могу с ним работать как с текстом. Но мне как-то не нравится работать как с текстом! В этом тексте надо найти поля обьекта. Интересуют именно массивы данных. Типа такого:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
                    colors : { 
                        "169387:NAVY" : "NAVY", 
                        "169387:KHAK" : "KHAKI", 
                        "169387:GYMU" : "GRAY/MULTI", 
                        "169387:BLAC" : "BLACK", 
                        "169387:BKHB" : "BLACK HERRINGBONE", 
                        "169387:BKST" : "BLACK STRIPE", 
                        "169387:BKTW" : "BLACK TWEED", 
                        "169387:BROW" : "BROWN", 
                        "169387:DKHA" : "DARK KHAKI", 
                        "169387:GRAY" : "GRAY", 
                        "169387:GYPL" : "GRAY PLAID", 
                        "169387:GYST" : "GRAY STRIPE"
                    },


Можно ли получить доступ к этим полям как к элементу? Или вообще как такое распарсить можно?
...
Рейтинг: 0 / 0
27.03.2012, 21:14:55
    #37726282
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
про json слышали?
...
Рейтинг: 0 / 0
27.03.2012, 21:44:01
    #37726321
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
Слышал. И что? Каким боком применить?
...
Рейтинг: 0 / 0
27.03.2012, 21:45:56
    #37726324
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
Надо же, что-то сегодня как никогда о JSON заговорили. И надо же, как только сам с этим вплотную столкнулся.
В соседнем топике прицепил библиотечку.
...
Рейтинг: 0 / 0
27.03.2012, 21:47:59
    #37726329
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
Допустим цвета похожи на json, а такое:
Код: javascript
1.
2.
3.
4.
5.
6.
                { item : "169387", color : "BKHB", size : "1", inseam : "37", price : 34.90 },
                { item : "169387", color : "BKHB", size : "11", inseam : "32", price : 34.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "35", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "35", price : 39.90 },


не подсунуть в джейсон.
...
Рейтинг: 0 / 0
27.03.2012, 21:51:16
    #37726333
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
jabДопустим цвета похожи на json, а такое:
Код: javascript
1.
2.
3.
4.
5.
6.
                { item : "169387", color : "BKHB", size : "1", inseam : "37", price : 34.90 },
                { item : "169387", color : "BKHB", size : "11", inseam : "32", price : 34.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "35", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "35", price : 39.90 },


не подсунуть в джейсон.

Да ну? каждая строка - типичный объект javascript.

а вот это типичный json -
Код: javascript
1.
2.
3.
4.
5.
6.
{items :  { item : "169387", color : "BKHB", size : "1", inseam : "37", price : 34.90 },
                { item : "169387", color : "BKHB", size : "11", inseam : "32", price : 34.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "35", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "35", price : 39.90 },}
...
Рейтинг: 0 / 0
27.03.2012, 22:37:26
    #37726410
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
забыл никДа ну? каждая строка - типичный объект javascript.

а вот это типичный json -
Код: javascript
1.
2.
3.
4.
5.
6.
{items :  { item : "169387", color : "BKHB", size : "1", inseam : "37", price : 34.90 },
                { item : "169387", color : "BKHB", size : "11", inseam : "32", price : 34.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "35", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "35", price : 39.90 },}


Нет, это фигня на постном масле. Ни один парсер не распарсит ... :)
Вот это javascript object:
Код: javascript
1.
2.
3.
4.
5.
6.
{items :  [{ item : "169387", color : "BKHB", size : "1", inseam : "37", price : 34.90 },
                { item : "169387", color : "BKHB", size : "11", inseam : "32", price : 34.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "35", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "35", price : 39.90 }]}


, который легко трансформируется в JSON (по стандартам):
Код: javascript
1.
2.
{"items" :  [{"item":"169387", "color":"BKHB", "size":"1", "inseam":"37", "price":34.90 }, ...,
                {"item":"169387", "color":"BKHB", "size":"17", "inseam":"35", "price":39.90 }]}
...
Рейтинг: 0 / 0
27.03.2012, 22:40:22
    #37726415
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
IDVsbruckзабыл никДа ну? каждая строка - типичный объект javascript.

а вот это типичный json -
Код: javascript
1.
2.
3.
4.
5.
6.
{items :  { item : "169387", color : "BKHB", size : "1", inseam : "37", price : 34.90 },
                { item : "169387", color : "BKHB", size : "11", inseam : "32", price : 34.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "35", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "35", price : 39.90 },}


Нет, это фигня на постном масле. Ни один парсер не распарсит ... :)
Вот это javascript object:
Код: javascript
1.
2.
3.
4.
5.
6.
{items :  [{ item : "169387", color : "BKHB", size : "1", inseam : "37", price : 34.90 },
                { item : "169387", color : "BKHB", size : "11", inseam : "32", price : 34.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "15", inseam : "35", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "32", price : 39.90 },
                { item : "169387", color : "BKHB", size : "17", inseam : "35", price : 39.90 }]}


, который легко трансформируется в JSON (по стандартам):
Код: javascript
1.
2.
{"items" :  [{"item":"169387", "color":"BKHB", "size":"1", "inseam":"37", "price":34.90 }, ...,
                {"item":"169387", "color":"BKHB", "size":"17", "inseam":"35", "price":39.90 }]}



Так-то да, суть просто была в том, чтобы объединить в одну коллекцию, синтаксис не главное)
...
Рейтинг: 0 / 0
27.03.2012, 22:44:18
    #37726424
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
А, ну тогда да :)
...
Рейтинг: 0 / 0
28.03.2012, 14:03:20
    #37727368
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
IDVsbruckкоторый легко трансформируется в JSON (по стандартам):
Ну раз легко, то для Вас не составит труда показать мне этот лёгкий способ!?
...
Рейтинг: 0 / 0
28.03.2012, 16:38:28
    #37727833
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
С помощью указанной мною библиотеки?
...
Рейтинг: 0 / 0
28.03.2012, 16:53:53
    #37727880
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
Угу. С помощью той библиотеки. Потом посмотрю чем отличается от:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;


Собсно это тот набор, которого я должен придерживаться. А другие библиотеки буду добавлять в свой проект, если окажется проще/лучше.
...
Рейтинг: 0 / 0
28.03.2012, 16:55:48
    #37727887
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
Ммм.. в свой проект, имелось в виду, что не в своем проекте я должен использовать имеющийся набор библиотек. А в свой проект могу надобавлять что угодно.
...
Рейтинг: 0 / 0
28.03.2012, 17:42:59
    #37728028
rabiter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
jab,

Может оказаться небольшой overkill, но посмотри в сторону JSR-223 "Scripting for the Java Platform"
Например здесь: Adam Bien Blog

Сам я никогда этим не пользовался, но тема очень интересная ИМХО.
...
Рейтинг: 0 / 0
28.03.2012, 18:33:25
    #37728158
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
Есть выражение: \sskus : \[.*\]
Делаю патерн: Pattern p = Pattern.compile("\\sskus : \\[.*\\]");

Далее:
Код: java
1.
2.
3.
4.
                                Matcher m = p.matcher(myString);
                                while (mJSON.find()) {
                                    System.out.println("found:");
                                    String theSku = mJSON.group();


И нихрена не находит! Хотя должно.. без .*\\] работает, но находит только кусочик естественно.
...
Рейтинг: 0 / 0
28.03.2012, 18:34:07
    #37728161
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
String theSku = m.group();
...
Рейтинг: 0 / 0
28.03.2012, 18:36:07
    #37728164
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
опять не то.. вот:
Код: java
1.
2.
3.
4.
                                Matcher m = p.matcher(myString);
                                while (m.find()) {
                                    System.out.println("found:");
                                    String theSku = m.group();



не работает.
...
Рейтинг: 0 / 0
28.03.2012, 18:56:16
    #37728207
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
не работает .*
Любой символ это в том числе и переход на следующую строку? Почему в java он не считает переход на новую строку как любой символ? Как тогда быть?
...
Рейтинг: 0 / 0
28.03.2012, 19:11:34
    #37728243
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в java парсить тексты javaScript?
Разобрался.. аж вспотел... Нужно вторым параметром указывать ключи было...
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как в java парсить тексты javaScript? / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]