2014-01-21 2 views
0

Вот этоКак разделить данные такого рода в андроиде

string one =[{"ID":5,"Name":"Sai"}] 

как я получаю только идентификатор и имя из этой строки

Matcher matcher = Pattern.compile("\\[([^\\]]+)").matcher(one); 

        List<String> tags = new ArrayList<String>(); 

        int pos = -1; 
        while (matcher.find(pos+1)){ 
         pos = matcher.start(); 
         tags.add(matcher.group(1)); 
        } 

        System.out.println("getting data"+tags); 

я попытался это, но он не работает

+1

'Это не сработало' - что это значит? Как насчет '[{« ID »: 5,« Name »:« Sai »}]. Split (", ") [1] .split (": ") [0];' – Simon

ответ

2
List<String> ls = new ArrayList<String>(one); 
        JSONArray array = new JSONArray(); 
      for(int i = 0; i< array.length(); i++){ 
       JSONObject obj = array.getJSONObject(i); 
       ls.add(obj.getString("Name")); 

      } 
1

это json formate Дата использовать JsonObject класс для анализа этих данныхучебник this

JSONArray jsonArray = new JSONArray("[{\"ID\":5,\"Name\":\"Sai\"}]"); 
    for (int i = 0; i < jsonArray.length(); i++) { 
     JSONObject object = jsonArray.getJSONObject(i); 
     System.out.println(object.getString("ID")); 
     System.out.println(object.getString("Name")); 
    } 
+0

Я знаю это, но это возможно чтобы разделить это без использования json – Kirti

+0

см. мой обновленный andswer –

+0

@ Кирти Да, это возможно без JSON, но *** почему? *** Если вы хотите разобрать его, вы должны определить, в каком формате будут вводиться входные данные, и какой будет выход. Нужны ли вам вложенные структуры? Вы можете разбить объект JSON на пары _ (ключ, значение) _, но если вам нужен общий случай с вложенными объектами и массивами JSON, проще использовать то, что другие люди пишут и отлаживают. – 18446744073709551615

1

Этот формат данных называется JSON.

Посмотрите на страницу http://json.org/, выделите (почти) конец, щелкните по одной из многих библиотек Java, перечисленных в списке.

1

Прежде всего, инициализация строки неверна.

Неправильно:

string one =[{"ID":5,"Name":"Sai"}] 

Правильно:

String one ="[{\"ID\":5,\"Name\":\"Sai\"}]"; 

Во-вторых, его JSON данные в формате, так что вы можете разобрать его с помощью JSONArray и JSONObject классы, вместо того чтобы создавать любой рисунок.

Теперь в вашем случае его JSONObject внутри JSONArray так изначально создает объект JSONArray, используя вашу строку.

Например:

JSONArray arrayJSON = new JSONArray(one); // 'one' is your JSON String 
    for(int i=0; i<arrayJSON.length(); i++) { 
     JSONObject objJson = arrayJSON.getJSONObject(i); 
     String ID = objJson.getString("ID"); 
     ..... 
     ..... 
      // same way you can fetch/parse any string/value from JSONObject/JSONArray 

    } 
2

Это формат JSON, и это может быть очень легко прочитать в Android. Вот пример кода:

  JSONArray array = new JSONArray(one); 



      int length = array.length(); 

      for(int i=0;i< length; i++) 
      { 
       JSONObject temp = array.getJSONObject(i); 

       System.out.println(temp.getString("ID")); 

       System.out.println(temp.getString("Name")); 

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