2015-11-03 3 views
1

Итак, у меня есть действительная строка JSON с японскими символами, но всякий раз, когда я пытаюсь ее проанализировать, я попадаю на определенный символ, который, по его словам, является недопустимым.Javascript JSON.parse проблемы с иностранными символами

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

str = '{ "uuid": "214959c1-8f13-43e1-89a3-8ee1c891a118", "token": "de45f7ca-00de-4c33-892e-ebcb0424ac2a", "account": { "type": "account", "acoounts_id" : "123456", "email" : "[email protected]", "account_status_id" : "11", "is_active" : true, "region" : "JP", "profiles": [  {  "type": "profile",  "profile_id": "4567",  "account_id": "123",  "first_name": "有里",  "last_name": "篠田",  "gender": "female",  "is_kids": false,  "language": "en",  "has_pincode": true,  "favorite_genres_selected": true,  "images": {   "profile_icon": {   "src": "http://icon.mypics.com/profile_4567.jpg"   }  }  },  {  "type": "profile",  "profile_id": "1234",  "account_id": "345",  "first_name": "高顕",  "last_name": "中野",  "gender": "male",  "is_kids": true,  "language": "ja",  "has_pincode": false,  "favorite_genres_selected": true,  "images": {   "profile_icon": {   "src": "http://icon.mypics.com/profile_4567.jpg"   }  }  } ] }}'; 
var parsed = JSON.parse(str); 

И получаю ошибку

Uncaught SyntaxError: Unexpected token (…) 

Кто-нибудь есть какие-либо возможные объяснения? Любые обходные пути? Основная проблема заключается в том, что я пытаюсь вернуть это как ответ, и, не имея возможности преобразовать его в объект, тип ответа будет неуклюжим.

Я использую сервер Node.js, на котором выполняется Express, если это помогает с предоставлением каких-либо обходных решений.

+0

могли бы вы опубликовать ваш точный код? – dm03514

+0

Привет, Можете ли вы разместить код, который вы пытаетесь, и сообщение об ошибке, которое вы получаете? Трудно отлаживать, когда кода нет. Спасибо. – Nitin

+0

Как уже отмечали другие комментаторы, вам действительно нужно разместить больше деталей кода. Если вы создаете тривиальный пример кода, кодирующий ваш json в виде строки, затем разбираете его, * все работает отлично *. Вам нужно создать образец кода, иллюстрирующий проблему, предпочтительно используя строковый литерал, полученный от сервера. –

ответ

0

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

В основном вам необходимо избегать уставов, прежде чем они будут разбираться в массиве объектов.

Sending japanese characters over JSON

JSONObject info = new JSONObject(); 
info.put("japString", "よやかなゆひま".toString()); 
+0

Это для Java не Javascript, как мой вопрос в –

Смежные вопросы