powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
25 сообщений из 53, страница 2 из 3
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536426
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixicа и при таком подходе не могу воздействовать на данные графика, менять и прочее.
я написал как это можно сделать при помощи eval,
eval к принимаемым данным применить, а не ко всему вызову Highcharts.chart

если бы дефекты были только в отсутствии кавычек , неправильных кавычках и лишних запятых- задача легко решалась бы санитайзером json, но ваши рукожопы ещё тела функций в "json" поместили, что несколько осложняет задачу.

Nixic1. Как можно помимо $ajax отправить на клиента запрос передав айди и получить от него данные? Не используя какие-то большие фреймворки, а простые популярные библиотеки типа jquery.
в чём проблема - у вас jquery и используется(кроме вызова $.ajax можно использовать вызов $.get ). Есть способы, отличные от AJAX, но их изучение лучше отложить,
ибо они никак не помогут решить задачу обработки приходящего javascript кода


Nixic2. Как еще можно внедрить свой код внутрь метода так, чтобы строка выполнилась как код? Или лишь eval и всё тут?
смотри New Function()
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536536
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага понятно, значит верно двигаюсь :)
Про $ajax уже как раз прочитал, что он самый удобный, а все остальные которые есть лишь надстройки над ним. Но можно обойтись и без него, но смысла нет, да.
В итоге варианта остается 2, оставить через eval и показать работающий продукт как можно быстрее, а потом рефакторить.
Или сразу давить на БДэшников, чтобы формировали валидный json.
В принципе все понятно :)
Спасибо всем за дискуссию выходного дня :))
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536655
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic,
вместо eval можно попробовать такое

Код: javascript
1.
2.
3.
4.
5.
6.
success : function(result) {
				exe = "Highcharts.chart('container', {" + result.bodyText + "});";
				var sc=document.creatElement('script');
                                sc.text=exe;
                                document.body.appendChild(sc);
			},


если это разовая операция.
если многократная, то данному тегу скрипт присвоить id, и при следующем использовании данный скрипт удалить, и вставить новый.
будет работать быстрее, функция eval очень тормознутая.
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536658
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic,

или так

Код: javascript
1.
2.
3.
4.
success : function(result) {
				exe = "Highcharts.chart('container', {" + result.bodyText + "});";
				window['Highcharts']['chart'](exe);
			},
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536659
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic,
так правильно
Код: javascript
1.
2.
3.
4.
success : function(result) {
				exe = "'container', {" + result.bodyText + "}";
				window['Highcharts']['chart'](exe);
			},
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536666
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic,
а так?
Код: javascript
1.
2.
3.
success : function(result) {
				Highcharts.chart('container', "{" + result.bodyText + "}");
			},
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536680
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяNixic,
а так?
Код: javascript
1.
2.
3.
success : function(result) {
				Highcharts.chart('container', "{" + result.bodyText + "}");
			},


Это был мой самый первый вариант, он не прокатывает, потому что result.bodyText
есть строка и она обрамлена видимо двойными кавычками в таком случае. Грузится заголовок хайчарта, а параметры его не подгружаются.
Сейчас буду пробовать через window и другие способы выше, спасибо :)
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536682
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic,
если в самой строке есть кавычки - то их можно удалить . - первый и последний символ
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536685
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но, я так понимаю, в любом случае мне не удастся поработать в итоге как с объектом, что-то поменять, преобразовать.
Так что базистов нужно будет все-таки напрягать, чтобы давали валидную строку аля набивший оскомину json :)
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536687
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяNixic,
вместо eval можно попробовать такое

Код: javascript
1.
2.
3.
4.
5.
6.
success : function(result) {
				exe = "Highcharts.chart('container', {" + result.bodyText + "});";
				var sc=document.createElement('script');
                                sc.text=exe;
                                document.body.appendChild(sc);
			},


если это разовая операция.
если многократная, то данному тегу скрипт присвоить id, и при следующем использовании данный скрипт удалить, и вставить новый.
будет работать быстрее, функция eval очень тормознутая.

Беру на вооружение для будущих разработок, если понадобится :) Работает.
Пойду теперь почитаю что здесь вообще происходит :)
Спасибо! :)
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536688
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic,
после такого
Код: javascript
1.
2.
3.
4.
5.
6.
7.
success : function(result) {
				
				var sc=document.creatElement('script');
                                sc.text='var hc={'+result.bodyText + '};';
                                document.body.appendChild(sc);

			},



будет глобальный объект - hc.
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536802
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NixicНо, я так понимаю, в любом случае мне не удастся поработать в итоге как с объектом, что-то поменять, преобразовать.
Неправильно понял - eval можно применить к данным
(обернувши в пару анонимных функций, зачем вторая - читай особенности доступа eval к локальным переменным)

Код: javascript
1.
var arg= (function(d){return eval("(function(a){return a})("+d+")")})(data);



далее с arg делай что хочешь
и вызывай обычным образом
Код: javascript
1.
Highcharts.chart('container',arg);
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536805
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NixicТак что базистов нужно будет все-таки напрягать, чтобы давали валидную строку аля набивший оскомину json :)

"базисты" вам поставляют кроме невалидных json данных
(имена без кавычек, одиночные кавычки, лишние запятые в массивах )
ещё и функции, которые никак c json несовместимы
Код: javascript
1.
2.
formatter:function(){return 'Количество животных:
 '+this.y+' '+this.series.options.abbreviation;}



Подумайте как передать эти функции отдельно от данных
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536809
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536824
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
если поправить только скобки то
Код: javascript
1.
2.
3.
4.
5.
6.
var sc=document.createElement('script');
var result_bodyText="chart:{type:'column'},title:{text:'Сведения какие-то'},xAxis:{type:'category',labels:{rotation:-45,style:{fontSize:'13px',fontFamily:'Verdana,sans-serif'}}},legend:{enabled:false},tooltip:{formatter:function(){return 'Количество животных: '+this.y+this.series.options.abbreviation;}},yAxis:{min:0,title:null},series:[{name:'Количество кого-то',scale:1000,precision:1,abbreviation:'тыс.',data:[['Январь 2015',6.2],['Февраль 2015',42.5],['Март 2015',46.],['Апрель 2015',47.4],['Май 2015',4.1],['Июнь 2015',13.4],['Июль 015',26.9],['Август 2015',192.7],['Сентябрь 2015',216.1],['Октябрь 2015',229.1],['Ноябрь 2015',275.2],['Декабрь 2015',435.7]]}]";


                                sc.text='var hcc={'+result_bodyText + '};';
                                document.body.appendChild(sc);



то всё валидно
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536869
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадято всё валидно
скприпт валиден, а не json

как часто на страницу новые данные подгружаются?
все костыли ведут к утечкам памяти.

Устраивают костыли и хорошо.
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536878
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилвадято всё валидно
скприпт валиден, а не json

как часто на страницу новые данные подгружаются?
все костыли ведут к утечкам памяти.

Устраивают костыли и хорошо.
получается что та не json.
если это применять многократно, то да, уттекёт.
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536882
DeanWinchester
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяNixic,
после такого
Код: javascript
1.
2.
3.
4.
5.
6.
7.
success : function(result) {
				
				var sc=document.creatElement('script');
                                sc.text='var hc={'+result.bodyText + '};';
                                document.body.appendChild(sc);

			},



будет глобальный объект - hc.

Это зачем если есть requirejs ?
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536889
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeanWinchesterвадяNixic,
после такого
Код: javascript
1.
2.
3.
4.
5.
6.
7.
success : function(result) {
				
				var sc=document.creatElement('script');
                                sc.text='var hc={'+result.bodyText + '};';
                                document.body.appendChild(sc);

			},



будет глобальный объект - hc.

Это зачем если есть requirejs ?
тут чистый js. и это для примера.
так многократно не стоит делать
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39536965
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадятак многократно не стоит делать

Можно и с земли разок поесть, но многократно не стоит так делать.
Какая же ужасная у тебя жизнь
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39537083
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе все решилось, кстати eval() все же сработал, меня наставник, если так можно его назвать ткнул носом сегодня.
Оказывается помимо {} надо было еще обернуть строку в () скобки и в двойные кавычки.
И вот тогда-то мы получаем объект, можем его в консоль вывести и раскрыть списком объектов, а так же можем обращаться к его элементам. Я когда увидел, то у меня челюсть отпала )))
Так-то все это интересно, конечно, весь этот жаваскрипт )) Буду и так и так пробовать, по всякому, нужно все варианты около этой проблемы проработать, тогда лучше усвоится. Я думаю.
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39537106
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic, вот только eval хоть есть выход в этом положении, но намного круче было б если обойтись без него.
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39537112
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяNixic, вот только eval хоть есть выход в этом положении, но намного круче было б если обойтись без него.
разобрать acorn, например,
тела функций - собрать escodegen и компилить через new Function(), кэшируя результат компиляции
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39537121
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так вроде не должно утекать
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
var sc=document.createElement('script');
var hcc={};
var result_bodyText="chart:{type:'column'},title:{text:'Сведения какие-то'},xAxis:{type:'category',labels:{rotation:-45,style:{fontSize:'13px',fontFamily:'Verdana,sans-serif'}}},legend:{enabled:false},tooltip:{formatter:function(){return 'Количество животных: '+this.y+this.series.options.abbreviation;}},yAxis:{min:0,title:null},series:[{name:'Количество кого-то',scale:1000,precision:1,abbreviation:'тыс.',data:[['Январь 2015',6.2],['Февраль 2015',42.5],['Март 2015',46.],['Апрель 2015',47.4],['Май 2015',4.1],['Июнь 2015',13.4],['Июль 015',26.9],['Август 2015',192.7],['Сентябрь 2015',216.1],['Октябрь 2015',229.1],['Ноябрь 2015',275.2],['Декабрь 2015',435.7]]}]";

sc.setAttribute('id',"sss");
sc.text='hcc={'+result_bodyText + '};';
document.body.appendChild(sc);
document.getElementById('sss').remove();
...
Рейтинг: 0 / 0
Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
    #39537123
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так проще
Код: javascript
1.
2.
3.
4.
5.
6.
var sc=document.createElement('script');
var hcc={};
var result_bodyText="chart:.........";

sc.text='hcc={'+result_bodyText + '};';
document.body.appendChild(sc).remove();


это конечно велосипед, но зато без eval :)
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 2 из 3
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Невалидный JSON, но валидный JS. Java Spring MVC, eval() и прочие прелести :)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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