2014-09-03 6 views
0

У меня есть следующая строкаКак получить строку [] из следующей строки JSON?

["[email protected]","[email protected]"] 

Я использую String.split(",") получить String []. Но содержимое массива состоит из «[» и «"».

мне нужно получить фактические строки без кавычек. Есть библиотека или метод, с которым я могу это сделать?

В настоящее время я делаю как это.

recipients = recipients.replace("\"", ""); 
    recipients = recipients.replace("[", ""); 
    recipients = recipients.replace("]", ""); 
    String[] totalRecipients = recipients.split(","); 
+1

Почему вы не пытаетесь разбирать строку JSON вместо того, чтобы пытаться выполнять строковые манипуляции? Вы получите «Список » при разборе JSON String, который можно легко преобразовать в массив строк. – SudoRahul

ответ

4

Де-сериализуйте строку json для java-объекта, используя boon или jackson Сторонняя библиотека.

Boon Пример -

ObjectMapper mapper = JsonFactory.create(); 
String[] recipientArray = mapper.readValue(recipients , String[].class, String.class); 

Найти Java Boon против Джексоном JSon - контрольные показатели - here

enter image description here

Источник: Link

+2

Эта гистограмма не очень полезна. Что он пытается сказать? Что Джексон на 25% быстрее, чем Бун? Или что Джексону нужно всего 25 мс для чего-то, где Бун нуждается в 100 мс? – Tom

+0

График пропускной способности вертикальной оси указывает на пропускную способность. Получите лучшее понимание из ресурса ссылки. –

+0

@SubhrajyotiMajumder спасибо. Мой проект уже использует библиотеку net.sf.json. Я не нашел, какие методы я мог бы использовать из того же самого. – phoenix

1

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

http://jackson.codehaus.org/

String s = "[\"[email protected]\",\"[email protected]\"]"; 

ObjectMapper mapper = new ObjectMapper(); 
JsonNode node = mapper.readValue(s); 
for(JsonNode n : node){ 
....... 
} 
+1

Новая Домашняя страница находится здесь: http://wiki.fasterxml.com/JacksonHome :). – Tom

+0

ха-ха, спасибо, просто найдите его из Google. –

1

вы можете использовать в google's gson и для декодирования JSON до String[] вы можете просто использовать эту строку кода

Gson gson = new Gson(); 
String[] myArray = gson.fromJson(yourjson,String[].class); 
Смежные вопросы