2013-06-04 2 views
0

Я получилПреобразовать массив отформатирован строки объекта

[[["汽車","car","Qìchē",""]],[["名詞",["汽車","車","轎車","車輛","車廂"],[["汽車",["car","automobile","auto"],,0.26497361],["車",["car","vehicle","lathe","machine","rook","turn"],,0.21967085],["轎車",["car","bus"],,0.020115795],["車輛",["vehicle","car"],,0.013611027],["車廂",["car"],,0.0042828997]]]],"en",,[["汽車",[4],0,0,1000,0,1,0]],[["car",4,[["汽車",1000,0,0],["車",0,0,0],["轎車",0,0,0],["車輛",0,0,0],["車廂",0,0,0]],[[0,3]],"car"]],,,[["en"]],27] 

это от Google Переводчик Однако я попытался

JSON.parse(xhr.responseText); 

Он возвращает ошибку Unexpected маркер

+2

Прежде чем ответить, то, что вы разместили здесь, - это уже обработанные данные, а JSON.parse ожидает строку (значение с разделителем с цитатой). – sixFingers

+0

Потому что это типы - строка – user1961278

+1

. Откуда эти данные? Как сказал один из ответов, это недействительно JSON из-за ',, 0.21967085'. Если это API, вам нужно сообщить об ошибке. – Barmar

ответ

0

Во-первых, вы должны удалить дополнительный [] скобки, заменив это.

еи

[["汽車","car","Qìchē",""]] 

должно быть:

["汽車","car","Qìchē",""] 

EDIT: Вы можете обратиться к этому ответу: Parse Google Translate Json C#

Вы должны попробовать:

var str = '[[["汽車","car","Qìchē",""]],[["名詞",["汽車","車","轎車","車輛","車廂"],[["汽車",["car","automobile","auto"],,0.26497361],["車",["car","vehicle","lathe","machine","rook","turn"],,0.21967085],["轎車",["car","bus"],,0.020115795],["車輛",["vehicle","car"],,0.013611027],["車廂",["car"],,0.0042828997]]]],"en",,[["汽車",[4],0,0,1000,0,1,0]],[["car",4,[["汽車",1000,0,0],["車",0,0,0],["轎車",0,0,0],["車輛",0,0,0],["車廂",0,0,0]],[[0,3]],"car"]],,,[["en"]],27]'; 

var objstr = $.parseJSON(str); 
+0

Нет ничего плохого в двойных скобках, это всего лишь массив, содержащий другой массив. – Barmar

1

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

Вы можете попробовать заменить его на один один перед разбором

var x = '[[["汽車","car","Qìchē",""]],[["名詞",["汽車","車","轎車","車輛","車廂"],[["汽車",["car","automobile","auto"],,0.26497361],["車",["car","vehicle","lathe","machine","rook","turn"],,0.21967085],["轎車",["car","bus"],,0.020115795],["車輛",["vehicle","car"],,0.013611027],["車廂",["car"],,0.0042828997]]]],"en",,[["汽車",[4],0,0,1000,0,1,0]],[["car",4,[["汽車",1000,0,0],["車",0,0,0],["轎車",0,0,0],["車輛",0,0,0],["車廂",0,0,0]],[[0,3]],"car"]],,,[["en"]],27]' 
    .replace(/,{2,}/g, ",") // 2 or more replace for 1 

JSON.parse(x); 

Или если у вас есть доступ к любой посылает эту строку зафиксировать выход.

+0

Я думаю, он сказал, что это происходит из Google Translate. – Barmar

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