Что не так в этой строке JSON? - PullRequest
0 голосов
/ 17 мая 2010

Моя строка JSON выглядит следующим образом:

[{"id": "38", "heading": "Не могли бы вы также выяснить, как вернуть мне 10 часов I * 1004?"* sp ..... "," description ":" У меня очень похожая проблема с элементом управления Login - снова он всегда генерирует стиль по умолчанию, содержащий border-collapse - только в этом случае ..... "," img_url":" ~ / EventImages / EventImages1274014884460.jpg "," catogory ":" News "," doe ":" 15-05-2010 "},

{" id ":" 40 "," heading":" Как удалить границу каждой строки (из контекста grid ..... "," description ":" Как удалить границу каждой строки (из элемента управления gridview).? Я установил borderWidth на 0,и границы не отображаются с IE, но верхняя часть ..... "," img_url ":" ~ / EventImages / EventImages1274028613023.jpg "," catogory ":" News "," doe ":" 15-05-2010 "},

{" id ":" 41 "," heading ":" Программное обеспечение Realmac | Как исправить всплывающее окно FancyZoom? (Всплывающее окно ..... "," description ":"Первое, что нам нужно, это диалог опций, а не только для облегченияr для пользователя, но также потому, что позже мы захотим запустить этот диалог из ..... "," img_url ":" ~ / EventImages / EventImages1274037688120.jpg "," catogory ":" News "," doe ":"15-05-2010"},

{"id": "42", "heading": "hi jacon
dsadddaddddddddddddddd", "description": "hi jacon
Этонемного грязно, потому что свойства clientHeight / Width могут означать разные вещи в разных браузерах и даже разные thi ..... "," img_url ":" ~ / EventImages / EventImages1274041211533.jpg "," catogory ":" News ","doe ":" 15-05-2010 "}

Но получите ошибку,

unterminated string literal ....

РЕДАКТИРОВАТЬ:

Я использовал это, но оно не работало,

 var newjson = cfreturn( """" & ToString( HfJsonValue ).ReplaceAll( "(['""\\\/\n\r\t]{1})", "\\$1" ) & """" ) ;
 var jsonObj = eval('(' + newjson + ')');

Ошибка: missing ) after argument list

Исходный код:

var newjson = cfreturn( """" & ToString( HfJsonValue ).ReplaceAll( "(['""\\\/\n\r\t]{1})", "\\$1" ) & """" ); 

РЕДАКТИРОВАТЬ:

В строке JSON есть отметка ', которая вызывает проблему ... любое предложение

Ответы [ 6 ]

3 голосов
/ 17 мая 2010

После игры с JSONLint я обнаружил следующие две проблемы:

  1. Символы новой строки должны быть экранированы с помощью \\n.
  2. Вам не хватает терминала ].
1 голос
/ 17 мая 2010

Скорее всего, это вызвано отсутствием выхода из строя где-то там. В примере повсюду есть разрывы строк, хотя я предполагаю, что они были добавлены для форматирования.

Если у вас есть разрывы строк, замените их на "\ n" или поставьте "\" в конце строки:

var x = "multi \n line \n string";
var y = "multi\
line\
string";

// this causes the "unterminated string literal" error.
var z = "multi
line
string";
0 голосов
/ 17 мая 2010

Этот блуждающий знак кавычки должен быть экранирован автоматически. Вы сами генерируете JSON? В таком случае я настоятельно рекомендую использовать библиотеку json для любого языка, с которым вы работаете, чтобы сгенерировать ее для вас, в противном случае вы продолжите сталкиваться со все более неясными версиями этой проблемы.

0 голосов
/ 17 мая 2010

Вы можете попробовать пример ниже.

<script type="text/javascript">

        var newjson = "{'id' : '38','heading' : 'Can you also figure out how to get me back the 10 "
        + "hours I sp.....','description' : 'Im having a very similar problem with the "
        + "Login control - again it always generates a default style containing border "
        + " -collapse -only in this case .....','img_url' : '~/EventImages/"
        + "EventImages1274014884460.jpg','catogory' : 'News','doe' : '15-05-2010 '}";

        var jsonObj = eval('(' + newjson + ')');

        alert(jsonObj.id);
        alert(jsonObj.heading);

    </script>
0 голосов
/ 17 мая 2010

Везде, где вы получаете JSON, генерируется неверный JSON.

Очистка это не тривиально и подходит к проблеме с неправильной стороны.

Решите проблему у источника.

0 голосов
/ 17 мая 2010

Вы должны попытаться экранировать все специальные символы, включая \n, что обычно является причиной такой ошибки.

Посмотрите на это сообщение в блоге

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...