2013-08-29 3 views
0

У меня есть строковый ответ вроде ниже, который является недопустимым json, поскольку он содержит "obj13=". Я хочу преобразовать его в JSONObject(JAVA) и использовать его. Есть ли какой-либо хороший способ его преобразования в JSONObject без использования операции разделения строк.Как преобразовать недопустимую строку JSON в JSONObject в Java?

obj13={ 
    players: [ 
    { 
     name: "rocky", 
     place: "brazil", 
     age: "21", 
    }, 
    { 
     name: "andy", 
     place: "New Zealand", 
     age: "23", 
    } 
    ] 
} 
+2

Что случилось с разделом фиктивного префикса? –

+0

@HotLicks Я могу просто использовать eval (String) в javascript, чтобы преобразовать строку упоминания в объекты и использовать их. Я подумал, может быть, в JAVA будет что-то подобное, которое может обрабатывать такой ответ json. – user818455

+0

Вы всегда можете написать собственный анализатор JSON или захватить его с открытым исходным кодом и изменить его. Помимо этого, вы не можете делать то, что хотите. Java не является Javascript. –

ответ

1

Это, конечно, JavaScript, а не JSON. Если вы можете, я вернусь к поставщику услуг и попрошу ответить JSON.

Если формат строки соответствует, вы могли бы просто использовать:

json=json.substring(json.indexof('=')+1); 

, а затем разобрать результат. Обратите внимание, что большинство хороших парсеров должны иметь возможность разрешать ключевые слова без кавычек и разрешать посторонние запятые (mine does, но, к сожалению, для вас он не создает JSONObject, но имеет более низкий уровень - он предназначен для построения структуры данных выбор вызывающего абонента, который может быть JSONObject, если это то, что вы хотели, но вам придется его кодировать).

Если результат может иметь или не иметь задание, вы можете захотеть получить немного более благоприятный и убедиться, что символы без пробелов перед символом '=' действительны для идентификатора JS и первого не-пробела после него является '{'.

+0

Где-то может быть синтаксический анализатор, который может быть убежден, что «=» следует рассматривать как «:», так что если вы завернете все это с помощью '{}', он будет разбираться. Но так же легко усечь строку, как ее обернуть. –

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