Comment puis-je créer un multidimensionnelle HashMap ou table de hachage en JSP / Java et de le convertir en un objet JSON?

J'ai besoin d'aide pour créer un multidimensionnelle HashMap ou table de hachage en JSP. Pourquoi dois-je besoin d'une table de hachage ou une table de hachage? Parce que j'ai finalement envie de transmettre au client un objet JSON. Si il est une autre façon pour finalement arriver à un objet JSON, je suis tout ouïe.

Je voulais aussi mentionner que ce fil a été très précieuse et j'ai été en expansion sur elle:

Comment puis-je écrire un caractère multidimensionnel, objet JSON en JSP et passer le JSON en objet JavaScript?

Voici ce que je veux que le résultat ressemble à ceci:

{
  "results": [ {
    "address_components": [ {
      "long_name": "1600",
      "short_name": "1600"
    }, {
      "long_name": "Amphitheatre Pkwy",
      "short_name": "Amphitheatre Pkwy"
    }, {
      "long_name": "Mountain View",
      "short_name": "Mountain View"
    }, {
      "long_name": "California",
      "short_name": "CA"
    }, {
      "long_name": "United States",
      "short_name": "US"
    }, {
      "long_name": "94043",
      "short_name": "94043"
    } ]
  } ]
}

Voici mon code JSP, qui utilise un exemple trivial, au lieu de données du monde réel, comme ci-dessus:

Hashtable results_hash = new Hashtable();   
Hashtable numbers = new Hashtable();
Hashtable[] arr = new Hashtable[10];

for (int i=0; i < 10; i++)
{
  numbers.put("Number",i);
  numbers.put("Numberx2",i*2);
  arr[i] = new Hashtable();
  arr[i].put("Comp",numbers);
  results_hash.put("results",arr[i]);
}

com.google.gson.Gson gson = new com.google.gson.Gson();
String json = gson.toJson(results_hash);
out.print(json);

Mais l'objet JSON ressemble à ceci:

{
  "results": {
    "Comp":    {
      "Numberx2":18,
      "Number":9 
    }
  }
}

Ce n'est pas le résultat souhaité. C'est seulement en prenant le dernier résultat et de le convertir en JSON. Donc, le problème commence avec la multidimensionnel de hachage pas construit correctement. Je ne suis pas sûr de ce qui est le problème, cependant. J'apprécierais un peu d'aide. Merci.

InformationsquelleAutor user717236 | 2011-05-12