JSON的使用 4年前

前端开发
501
JSON的使用

一.json常用转换方法

1.list

List list = new ArrayList();
list.add("first");
list.add("second");
JSONArray jsonArray2 = JSONArray.fromObject(list);

2.map

Map map = new HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
map.put("arr", new String[] { "a", "b" });
map.put("func", "function(i){ return this.arr[i]; }");
JSONObject json = JSONObject.fromObject(map);

3.bean

JSONObject jsonObject = JSONObject.fromObject(new JsonBean());

4.数组

boolean[] boolArray = new boolean[] { true, false, true }; 
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);

5.一般数据

JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );

6.beans

List list = new ArrayList();
JsonBean2 jb1 = new JsonBean2();
jb1.setCol(1);
jb1.setRow(1);
jb1.setValue("xx");
JsonBean2 jb2 = new JsonBean2();
jb2.setCol(2);
jb2.setRow(2);
jb2.setValue("");
list.add(jb1);
list.add(jb2);
JSONArray ja = JSONArray.fromObject(list);

二.HTML页面将String转换成json

eval()

function testFunction() {
    var jsonStr = '${str}';
    var dataObj = eval("(" + jsonStr + ")");//转换为json对象
    $.each(dataObj.info, function(idx, item) {
        alert("name:" + item.uuid + " , vaddress:" + item.vaddress);
    });
}

三.后台向前台传json

1.使用转义符  \

2.交给前台来处理 eval()

3.使用json工具类

后台代码:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.返回标准的json字符串(双引号要用转义符)
        //String s = "[{\"id\":1,\"text\":\"Root node\",\"children\":[{\"id\":2,\"text\":\"Child node 1\",\"children\":true},{\"id\":3,\"text\":\"Child node 2\"}]}]";
        
        //2.前台使用eval()函数将string装换成json格式
        //String s = "[{id:1,text:'Root node',children:[{id:2,text:'Child node 1',children:true},{id:3,text:'Child node 2'}]}]";
        
        //3.使用json工具类
        JSONArray s = getJson();
        response.setContentType("json");
        
        response.getWriter().print(s);
    }

        private JSONArray getJson() {
        JSONObject jo1 = new JSONObject();
        JSONObject jo2 = new JSONObject();
        jo1.put("id", 2);
        jo1.put("text", "Child node 1");
        jo2.put("id", 3);
        jo2.put("text", "Child node 2");
        JSONArray jsonArray = new JSONArray();
        jsonArray.add(jo1);
        jsonArray.add(jo2);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("id", 1);
        jsonObject.put("text", "Root node");
        jsonObject.put("children", jsonArray);
        JSONArray json = new JSONArray();
        json.add(jsonObject);
        return json;
    }

前台代码:

<div id="jstree"></div>
    <script>
        $(function() {
            $.ajax({
                url : "IndexServlet",
                datatype : "json",
                success : function(o) {
                    create(o);
                }
            });
        });
        function create(data) {
            //data = eval("(" + data + ")");
            $('#jstree').jstree({
                "core" : {
                    "data" : data
                },
            });
        }
        /* $(function() {
            $('#jstree').jstree({
                'core' : {
                    'data' : {
                        "url" : "IndexServlet",
                        "data" : function(node) {
                            return {
                                "id" : node.id
                            };
                        },
                        "dataFilter" : function(o) {
                            o = eval("(" + o + ")");
                            console.info(o);
                            return o;
                        } 
                    }
                }
            });
        }); */
    </script>
image
游戏狂人Atum
应该可以了吧,我已经很努力了,应该可以抵达终点了……
2
发布数
4
关注者
1351
累计阅读

热门教程文档

Spring Cloud
8小节
MySQL
34小节
Vue
25小节
Typescript
31小节
Dart
35小节
广告