2016-04-26 12 views
0

jsonに基づいて動的JSPページを作成しようとしています。jsonをJSPの連想配列に変換する方法

例えば、私のJSONの場合は次のようになります。

$data = json_decode($json_str); 

は、その後、私はどちらかそのIにアクセスできます。

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

PHPでは、私は1つのラインで簡単に私の連想配列を得ることができます

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

しかし、jspでは、havがないので簡単には行きませんPHPのような多くの文書gsonが見つかりましたが、まだわかりません。どのようにそれを達成するためにそれを使用する。

jsonを連想配列にしてから、jspにアクセスしてアクセスできるようにしてください。

+0

これは難しい問題ですが、Java9にはjson apiを追加することでこれを解決する計画がなかったので、この問題を他の方法で回避します。 – Kaninchen

答えて

1

Java Mapは連想配列です。あなたはこれであなたのJSON入力をデシリアライズするGsonを依頼することができます。

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

を例コード:

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")); 
    } 
} 

出力は次のようになります。そして、

true 
false 

、あなたの質問は、JSPでそれを変換についてです。さて、JSPのアドバイスのベストプラクティスでは、この種の処理をコントローラとして機能し、ビューを構築するためにJSPに属性を渡すサーブレットに移動することをお勧めします。 <% ... %>を使用してJSPにコードを直接記述することができますが、これを行うことを強くお勧めします。しかし、それはまったく異なる質問です。

関連する問題