Java Arraylist Извлечение данных - PullRequest
1 голос
/ 08 апреля 2011

Как бы вы извлекли данные следующим образом:

Я хочу извлечь из этого массива:

[{itemname=Original, number=12}, {itemname=BBQ, number=23}, {itemname=CatchUp, number=23}]

Этот массив:

{"Original":12,"BBQ":23,"CatchUp":23}

Заранее спасибо!Вот код, используемый для генерации хэш-карты:

ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
for (int i = 0; i<7;i++) {
 HashMap<String,String> map = new HashMap<String,String>();
  map.put("itemname",chips[i]);
  map.put("number",chipentry[i]);
  list.add(map);
 }

Ответы [ 3 ]

5 голосов
/ 08 апреля 2011

Похоже, вы хотите конвертировать его в Json, используя Google GSON http://code.google.com/p/google-gson/ это очень просто

"Предоставить простые методы toJson () и fromJson () для преобразования объектов Java в JSON и наоборот"

Вот что я имею в виду:

Gson gson = new Gson();
gson.toJson(map); //where map is your map object
0 голосов
/ 08 апреля 2011

Для извлечения данных, как вы ожидали, вы можете использовать JSON процессор JSON .Это позволяет легко читать и писать JSON.Вы можете следовать их уроку здесь .

Во-первых, вам необходимо скачать соответствующие файлы jar (2 файла), предоставленные ими.

Таким образом, следующий фрагмент кода должен решить вашу проблему, и результат записывается в файл jsonResult.json.

    String[] chips = {"Original", "BBQ", "CatchUp"};
    String[] chipentry = {"12", "23", "23"};

    List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
    for (int i = 0; i < 3; i++) {
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("itemname", chips[i]);
        map.put("number", chipentry[i]);
        list.add(map);
    }

    ObjectMapper mapper = new ObjectMapper();
    Map<String, Object> untyped = new HashMap<String, Object>();

    untyped.put("result", list);
    mapper.writeValue(new File("jsonResult.json"), untyped);

Ниже приведен вывод файла,

{"result":[{"itemname":"Original","number":"12"},{"itemname":"BBQ","number":"23"},{"itemname":"CatchUp","number":"23"}]}
0 голосов
/ 08 апреля 2011

Спасибо за подсказку - я изменил следующий код:

  ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
  Gson gson = new Gson();
  for (int i = 0; i<7;i++) {
     HashMap<String,String> map = new HashMap<String,String>();
     map.put("itemname",chips[i]);
     map.put("number",chipentry[i]);
     list.add(map);
     System.out.println(gson.toJson(map));
  }

И результат http://imgur.com/E7uds.png

Я импортировал com.google.gson.Gson, что-то еще мне не хватает? Прошу прощения за новость и спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...