валидность/распарсить Json

rtyug
На сайте с 13.05.2009
Offline
263
2123

фреймворк отвичтает:


add "unexpected end of string while parsing JSON string, at character offset 562 (before "(end of string)") at /home

иногда когда передается текст, выводиться такая ошибка, тогда когда json пытается распарсить текст

с кодировкой и с текстом все нормально...

я так понимаю что тут символы в тексте которые мешают распарсить...

казалось бы элементарный текст:

;oo;o

можно ли как-то распарсить проблемный json?

(если вставить обычный большой текст с формы с русскмими буквами, то все передается нормально)

тут я не увидел пободного ничего http://search.cpan.org/~makamaka/JSON-2.21...ON.pm#from_json b в гугле не нашел как это решить http://www.google.com.ua/#hl=uk&q=unex...1e4a221592c4a20

Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)
[Удален]
#1

данные то покажите или это философский топик?

rtyug
На сайте с 13.05.2009
Offline
263
#2

сори

если написать так и отправить эти данные с textarea или с input:

  ;oo;o   

то ошибка эта, я так понял что ругается на кавычки?

 add "unexpected end of string while parsing JSON string, at character offset 562 (before "(end of string)") at /home 

если так:

то ошибки нету

  ooo   

часть HTML:

 
....
<script type="text/javascript" src="/dev/jquery-1.3.2.js"></script>

<script type="text/javascript" src="/latest/jquery.json-2.2.js"></script>
....

var formData = {
"id_last":$("#last_id").html()
, "array_new":array

};


$.ajax({
type: "POST",

url: "/chat/load/1",
data:'jsonData=' + $.toJSON(formData),
......

делаю так:


use JSON;
use Encode;

my $json_param = decode_json Encode::encode( 'utf8', $c->request->params->{jsonData} )
if ( $c->request->params->{jsonData} );

....

# out json:
sub off_json : Privat {

my ( $self, $c, $user_details, $decode ) = @_;

if ($decode) {
$user_details->{text_cm} =
Encode::decode( 'utf8', $user_details->{text_cm} )
if ( $user_details->{text_cm} );
$user_details->{useranme} =
Encode::decode( 'utf8', $user_details->{useranme} )
if ( $user_details->{useranme} );
$user_details->{name_guest} =
Encode::decode( 'utf8', $user_details->{name_guest} )
if ( $user_details->{name_guest} );
}
my $json = to_json($user_details);

$c->response->content_type("application/json");
$c->response->body($json);

}

[Удален]
#3
rtyug:
ooo
rtyug:
;oo;o

это json данные? смех это ...

ewg777
На сайте с 04.06.2007
Offline
225
#4
bearman:
это json данные? смех это ...

Пора уже привыкнуть к таким ответам.

[Удален]
#5

ewg777, разумно ...

rtyug
На сайте с 13.05.2009
Offline
263
#6

я вот нашел аналогичную тему http://community.livejournal.com/ru_perl/345451.html

(там ошибка такая, то проблема другая)

там написано, что ключи должны быть строками, тоже

 {0: "bla-bla", 23: "bla"} 

 {"0": "bla-bla", "23": "bla"} 

но что-то я не могу понять как мне тут сделать? (или может проболема вообще не в этом...)

        var formData = {
"text": +"+ $("input#text").val() + "

};

...так и аналогично не работает вообще...

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

===

bearman:
это json данные? смех это ...

я не написал, тут гемороя много, сори...

;oo;o это не json, это то что ввести в поле textarea или с input

а потом $.toJSON(formData) это запакует

вот в отладке в фрейворке


info] *** Request 846 (0.257/s) [62425] [Thu Apr 15 08:59:05 2010] ***
[debug] Body Parameters are:
.-------------------------------------+--------------------------------------.
| Parameter | Value |
+-------------------------------------+--------------------------------------+
| jsonData | {"text":"&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;"} |
'-------------------------------------+--------------------------------------'
[debug] "POST" request for "chat/add/1" from "127.0.0.1"
[debug] Found sessionid "1d490742d9bad03df7ed1c8b31baca40dfd26dc7" in cookie
[debug] Restored session "1d490742d9bad03df7ed1c8b31baca40dfd26dc7"
[debug] Path is "chat/add"
[debug] Arguments are "1"
[info] Request took 0.350099s (2.856/s)
.------------------------------------------------------------+-----------.
| Action | Time |
+------------------------------------------------------------+-----------+
| /begin | 0.006399s |
| /auto | 0.000740s |
| /chat/add | 0.286340s |
| -> /friends/found_friends | 0.003768s |
| -> /chat/count_add | 0.019538s |
| -> /comments_api/off_json | 0.003737s |
| /end | 0.001017s |
'------------------------------------------------------------+-----------'

[info] *** Request 847 (0.258/s) [62425] [Thu Apr 15 08:59:05 2010] ***

я передаю text, значение &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; с ним все номрально!

а вот я вставил

dfgdfgdfg;
в textarea

получается такая фигня:

(Json где-то оборвался, получается??)


[info] *** Request 858 (0.252/s) [62425] [Thu Apr 15 09:00:59 2010] ***
[debug] Body Parameters are:
.-------------------------------------+--------------------------------------.
| Parameter | Value |
+-------------------------------------+--------------------------------------+
| jsonData | {"text":"dfgdfgdfg |
'-------------------------------------+--------------------------------------'
[debug] "POST" request for "chat/add/1" from "127.0.0.1"
[debug] Found sessionid "1d490742d9bad03df7ed1c8b31baca40dfd26dc7" in cookie
[debug] Restored session "1d490742d9bad03df7ed1c8b31baca40dfd26dc7"
[debug] Path is "chat/add"
[debug] Arguments are "1"
[error] Caught exception in MyApp::Controller::chat->add "unexpected end of string while parsing JSON string, at character offset 18 (before "(end of string)") at /home/x0/data4/MyApp/script/../lib/MyApp/Controller/chat.pm line 48"
[info] Request took 0.141275s (7.078/s)
.------------------------------------------------------------+-----------.
| Action | Time |
+------------------------------------------------------------+-----------+
| /begin | 0.006554s |
| /auto | 0.000691s |
| /chat/add | 0.007087s |
| /end | 0.000865s |
'------------------------------------------------------------+-----------'

rtyug добавил 15.04.2010 в 23:58

bearman, тут проблема врядли на jquery json?

rtyug
На сайте с 13.05.2009
Offline
263
#7

проблема простая и была тут

     var formData = {
"text":$("input#text").val()
};


$.ajax({
type: "POST",
url: "/chat/add/1",
data:'jsonData=' + encodeURIComponent( $.toJSON(formData) ),
processData: false,
dataType: "json",
timeout: 3000,
success: function(msg) {

я это encodeURIComponent использовал, только по другому, не там где надо... по этому оно и не работало оказывается, и в гугле пободного не видел вообще!!... только вчера нашел....

W
На сайте с 03.07.2007
Offline
36
#8

Мой мозг вскипел от этого топика :))

Лучшая веб студия Максимаф.ру (http://maksimaf.ru) ICQ : 464-338-997 MAil: wispoz@inbox.ru Телефон: 8(915) 368-45-93
rtyug
На сайте с 13.05.2009
Offline
263
#9

проблема была что тут нужно поставить encodeURIComponent() чтобы все "кривые" символы перевелись в абстраный вид...

      data:'jsonData=' + encodeURIComponent( $.toJSON(formData) ), 

я это пробовал, делал только ставил не там где надо, а в значении хэша...

может кому-то пригодиться...

Bitman
На сайте с 05.07.2009
Offline
112
#10

Вспоминается анекдот: ...когда вот так делаю - болит, а так не болит...

Северный лес (https://euro-vagonka.by) DREW (https://drew.by) AvtoDrive (https://avtodrive.by)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий