我试图根据json制作动态jsp页面。
例如,如果我的json看起来像这样:
{
'page1':'true',
'page2':'true',
'page3':'false'
}
在php中,我可以通过一行轻松获取关联数组:
$data = json_decode($json_str);
然后我可以在我需要的地方找到我想要的那个,(即)
If($data['page1'] == 'true')
echo #page link#;
但是在jsp中,它并不容易,因为它没有像php这样的文档。我找到gson
但仍然不确定。如何使用它来实现它。
请给我一些例子,我可以将json转换为关联数组,然后在jsp中获取并访问它。
答案 0 :(得分:1)
Java Map
是一个关联数组。您可以要求Gson使用以下命令反序列化您的json输入:
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的最佳实践建议您将这种处理移动到充当控制器的Servlet,并将属性传递给JSP以构建视图。您可以使用<% ... %>
将代码直接放在JSP上,但我强烈建议您不要这样做。但那是一个完全不同的问题。