2016-04-26 4 views
0

Ich versuche, eine dynamische JSP-Seite basierend auf dem JSON zu erstellen.Wie man JSON zu assoziativem Array in JSP konvertiert

Zum Beispiel, wenn meine Json ist wie folgt aussehen:

{ 
    'page1':'true', 
    'page2':'true', 
    'page3':'false' 
} 

in PHP, konnte ich mein assoziatives Array um eine Zeile leicht bekommen:

$data = json_decode($json_str); 

Dann könnte ich je nachdem zugreifen, die ich an der Stelle wollte ich brauchte, (dh)

If($data['page1'] == 'true') 
    echo #page link#; 

Aber in jsp, ist es nicht so leicht geht, weil es nicht tun hav Viele Dokumente wie php. Ich finde die gson aber immer noch nicht sicher. wie man es benutzt, um es zu erreichen.

Bitte geben Sie mir ein Beispiel, dass ich JSON zu assoziativen Array, dann bekommen und Zugriff auf es in JSP.

+0

Sieht aus wie dies ein hartes Problem ist und Java9 hatte nicht vor, dies zu lösen, indem er json api hinzufügt, also werde ich dieses Problem umgehen, indem ich eine andere Methode benutze. – Kaninchen

Antwort

1

Ein Java Map ist ein assoziatives Array. Sie können Gson fragen Sie Ihren json Eingang mit diesem deserialisieren:

Map<String,String> map = new Gson().fromJson(inputJson, new TypeToken<Map<String,String>>() {}.getType()); 

Beispielcode:

package net.sargue.gson; 

import com.google.gson.Gson; 
import com.google.gson.reflect.TypeToken; 

import java.lang.reflect.Type; 
import java.util.Map; 

public class SO36859440 { 
    public static void main(String[] args) { 
    String inputJson = "{\n" + 
      " 'page1':'true',\n" + 
      " 'page2':'true',\n" + 
      " 'page3':'false'\n" + 
      "}"; 

    Type type = new TypeToken<Map<String, String>>() {}.getType(); 
    Map<String,String> map = new Gson().fromJson(inputJson, type); 

    System.out.println(map.get("page2")); 
    System.out.println(map.get("page3")); 
    } 
} 

Die Ausgabe lautet:

true 
false 

Dann ist Ihre Frage über sie in JSP Umwandlung . Nun empfehlen die Best Practices für JSP, diese Art der Verarbeitung in ein Servlet zu verschieben, das als Controller fungiert und Attribute an die JSP weitergibt, um die Ansicht zu erstellen. Sie können Code direkt auf die JSP setzen, indem Sie <% ... %> verwenden, aber ich rate Ihnen dringend davon ab. Aber das ist eine ganz andere Frage.

Verwandte Themen