Json.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta charset="UTF-8">
  8. <title>Insert title here</title>
  9. <script type="text/javascript" src="js/jquery-3.2.1.js"></script>
  10. <script type="text/javascript" >
  11. $(function(){
  12. $.post("JsonServlet",{method:"entityJson"},function(msg){
  13. //console.log(msg);//调试
  14. //接收过来是String 要转成对象才能点里面的属性
  15. var json = JSON.parse(msg); //字符串---->对象
  16. $("#Uname").val(json.uname);//给文本框中value赋值
  17. $("#num").val(json.uid);//给文本框中value赋值
  18. $("#addr").html(json.address);
  19. });
  20. $.post("JsonServlet",{method:"jsonList"},function(pList){
  21. //console.log(msg);//调试
  22. //接收过来是String 要转成对象才能点里面的属性
  23. var pObj = $.parseJSON(pList);//字符串----->数组对象
  24. $.each(pObj,function(i,p){
  25. var li = "<li>"+p.uid+"</li>"+"<li>"+p.uname+"</li>"+"<li>"+p.address+"</li>"+"<br/>";
  26. $("#myUl").append(li);
  27. });
  28. });
  29. $("#btn").click(function(){
  30. var url = "JsonServlet";
  31. var data ={"method":"jsonMap"};
  32. $.post(url,data,function(pMap){
  33. var personMap = $.parseJSON(pMap);//json集合字符串转json对象
  34. $.each(personMap,function(key,value){
  35. $.each(value,function(i,person){
  36. var li = "<li>"+person.uid+person.uname+person.address+"</li>";
  37. $("#myMap").append(li);
  38. });
  39. });
  40. });
  41. });
  42. })
  43. </script>
  44. </head>
  45. <body>
  46. <h3>Java实体(字符串)转JSON对象 JSON.parse(msg);</h3>
  47. ID:<input type="text" id="num"><br/>
  48. Name:<input type="text" id="Uname" ><br/>
  49. Address:<span id="addr" ></span>
  50. <hr>
  51. <h3>Java集合转JSON数组对象 $.parseJSON(pList)</h3>
  52. <ul id="myUl">
  53. </ul>
  54. <hr>
  55. <h3>Map集合转JSON对象</h3>
  56. <button id='btn'>获取Map集合数据</button>
  57. <ul id="myMap">
  58. </ul>
  59. </body>
  60. </html>

JsonServlet

  1. package servlet;
  2. import java.io.IOException;
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import javax.servlet.ServletException;
  8. import javax.servlet.annotation.WebServlet;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. import org.apache.commons.collections.map.HashedMap;
  13. import domain.Person;
  14. import net.sf.json.JSONArray;
  15. import net.sf.json.JSONObject;
  16. @WebServlet("/JsonServlet")
  17. public class JsonServlet extends HttpServlet {
  18. private static final long serialVersionUID = 1L;
  19. protected void doGet(HttpServletRequest request, HttpServletResponse response)
  20. throws ServletException, IOException {
  21. doPost(request, response);
  22. }
  23. protected void doPost(HttpServletRequest request, HttpServletResponse response)
  24. throws ServletException, IOException {
  25. String method = request.getParameter("method");
  26. if(method.equals("entityJson")) {
  27. //设置编码格式 不然会显示乱码
  28. response.setContentType("text/html;charset=utf-8");
  29. Person p = new Person(1001, "张三", "男", "广西");
  30. // 1. java实体转json对象
  31. JSONObject jsonObj = JSONObject.fromObject(p);
  32. //发送数据 字符串形式
  33. response.getWriter().println(jsonObj);
  34. System.out.println(jsonObj);
  35. }else if(method.equals("jsonList")){
  36. //设置编码格式 不然会显示乱码
  37. response.setContentType("text/html;charset=utf-8");
  38. List<Person> pList = new ArrayList<Person>();
  39. Person p1 = new Person(1001, "张三", "男", "广西");
  40. Person p2 = new Person(1002, "李四", "女", "广东");
  41. Person p3 = new Person(1003, "王五", "男", "四川");
  42. pList.add(p1);
  43. pList.add(p2);
  44. pList.add(p3);
  45. JSONArray jsonObject = JSONArray.fromObject(pList);
  46. System.out.println("集合长度是"+jsonObject.size());
  47. response.getWriter().println(jsonObject);
  48. }else if(method.equals("jsonMap")){
  49. //设置编码格式 不然会显示乱码
  50. response.setContentType("text/html;charset=utf-8");
  51. Map<String,Person> mp = new HashMap<String,Person>();
  52. mp.put("管理员", new Person(1001, "张三", "男", "广西"));
  53. mp.put("游客", new Person(1002, "张四", "男", "广西"));
  54. JSONArray jsonMap = JSONArray.fromObject(mp);
  55. //发送数据
  56. response.getWriter().println(jsonMap);
  57. }
  58. }
  59. }

2018.7.27 Json与Java相互转换的更多相关文章

  1. Java:JSON和Map相互转换

    Java:JSON与Map相互转换 需要jar包:jackson-core-2.6.0.jar,jackson-databind-2.6.0.jar,jackson-annotations-2.6.0 ...

  2. android开发中json与java对象相互转换

    json与java对象的相互转换.(使用com.google.gson) 在Android开发过程中,客户端总是需要从服务器获取数据,包括XML和json格式,目前json格式的数据使用较为普遍,所以 ...

  3. 使用Json让Java和C#沟通的方法

    原文:使用Json让Java和C#沟通的方法 最近很忙啊,新项目下来了,都没时间写博客了.频率降低点,但不能不总结跟大家分享啊. 我们在项目里经常要涉及到各模块间的通信,这其中又不可避免要碰到各类语言 ...

  4. 【VSCode】Windows下VSCode编译调试c/c++【更新 2018.03.27】

    --------– 2018.03.27 更新--------- 便携版已更新,点此获取便携版 已知BUG:中文目录无法正常调试 用于cpptools 0.15.0插件的配置文件更新 新的launch ...

  5. Json:Java对象和Json文本转换工具类

    Json 是一个用于 Java 对象 和 Json 文本 相互转换的工具类. 安装 下载源码 git clone https://github.com/njdi/durian.git 编译源码 cd ...

  6. JSONObject.fromObject(map)(JSON与JAVA数据的转换)

    JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.) 上一篇文章中有这么 ...

  7. json学习系列(8)JSON与JAVA数据的相互转换实例

    一.完整案例 先定义一个java实体对象,如下: package com.pcitc.json.cnblog; /** * SimInfo实体对象 * * @Description * @author ...

  8. JSON 与JAVA对象之间的转换(转)

    JSON与XML两者目前在数据交互方面都有很高的使用率,随着现在SOA的兴起,异构系统的整合地位相应提高,本篇文章主要介绍JSON与JAVA对象之间的相互转换. 一.对普通类型的JSON模式的转换 一 ...

  9. net.sf.json.JSONException: java.lang.NoSuchMethodException

    在尝试将json对象转换为list时候出现了如下错误 Exception in thread "main" net.sf.json.JSONException: java.lang ...

随机推荐

  1. Linux7.3 glib-2.49安装记录

    由于 Linux系统较新,所在glib选择了较新的glib-2.49,安装过程遇到颇多错误,这里只记录正确的成功的安装记录. # rpm -q ncurses readline lua libffi ...

  2. my.答题

    20170821增加: http://www.119you.com/mhxy/yxgl/738653.shtml 1.三界奇缘 http://my.netease.com/forum.php?mod= ...

  3. ES6多行字符串+模板字符串

    多行字符串 最新的ES6标准新增了一种多行字符串的表示方法,用反引号 ` ... ` 表示: 'use strict'; // 如果浏览器支持模板字符串,将会替换字符串内部的变量: var name ...

  4. robot framework 的AutoItLibrary常用关键字

    1.run 的用法,以及激活当前窗口

  5. Big Data Opportunities and Challenges(by周志华)论文要点

    大数据环境下的机器学习 三种误解:模型不再重要(大量数据上复杂模型依然提升显著,大数据是的复杂模型充分利用数据且难以过拟合),相关性就足够了(因果关系重要性无法被替代),以前的研究方向不再重要(高性能 ...

  6. RTT之柿饼UI

    console.log("strings")//向单片机通过串口发送日志提示信息 this.setData({label1: { value : "Hello RT-Th ...

  7. HDU - 6208 The Dominator of Strings HDU - 6208 AC自动机 || 后缀自动机

    https://vjudge.net/problem/HDU-6208 首先可以知道最长那个串肯定是答案 然后,相当于用n - 1个模式串去匹配这个主串,看看有多少个能匹配. 普通kmp的话,每次都要 ...

  8. Flyweight_pattern--reference

    http://en.wikipedia.org/wiki/Flyweight_pattern In computer programming, flyweight is a software desi ...

  9. Java入门之IDE集成开发环境安装及配置

    常用的开发工具 一.Eclipse Eclipse 是一个开放源代码的.基于 Java 的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.幸运的是,Eclipse ...

  10. 2.C#中的常用快捷键

    快速对齐代码: Ctrl+K+D:  快速对齐代码   (如果代码语法错误,就不能使用) Ctrl+Z:  撤销 Ctrl+S:保存   没事就Ctrl+S一下,防止因为电脑断电,代码全部丢失 Ctr ...