Json.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-3.2.1.js"></script>
<script type="text/javascript" >
$(function(){
$.post("JsonServlet",{method:"entityJson"},function(msg){
//console.log(msg);//调试
//接收过来是String 要转成对象才能点里面的属性
var json = JSON.parse(msg); //字符串---->对象
$("#Uname").val(json.uname);//给文本框中value赋值
$("#num").val(json.uid);//给文本框中value赋值
$("#addr").html(json.address);
}); $.post("JsonServlet",{method:"jsonList"},function(pList){
//console.log(msg);//调试
//接收过来是String 要转成对象才能点里面的属性
var pObj = $.parseJSON(pList);//字符串----->数组对象
$.each(pObj,function(i,p){
var li = "<li>"+p.uid+"</li>"+"<li>"+p.uname+"</li>"+"<li>"+p.address+"</li>"+"<br/>";
$("#myUl").append(li);
});
}); $("#btn").click(function(){
var url = "JsonServlet";
var data ={"method":"jsonMap"};
$.post(url,data,function(pMap){
var personMap = $.parseJSON(pMap);//json集合字符串转json对象
$.each(personMap,function(key,value){
$.each(value,function(i,person){
var li = "<li>"+person.uid+person.uname+person.address+"</li>";
$("#myMap").append(li);
});
});
});
}); })
</script>
</head>
<body>
<h3>Java实体(字符串)转JSON对象 JSON.parse(msg);</h3>
ID:<input type="text" id="num"><br/>
Name:<input type="text" id="Uname" ><br/>
Address:<span id="addr" ></span> <hr>
<h3>Java集合转JSON数组对象 $.parseJSON(pList)</h3>
<ul id="myUl">
</ul> <hr> <h3>Map集合转JSON对象</h3>
<button id='btn'>获取Map集合数据</button>
<ul id="myMap"> </ul>
</body>
</html>

JsonServlet

package servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.commons.collections.map.HashedMap; import domain.Person;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject; @WebServlet("/JsonServlet")
public class JsonServlet extends HttpServlet {
private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
} protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String method = request.getParameter("method");
if(method.equals("entityJson")) {
//设置编码格式 不然会显示乱码
response.setContentType("text/html;charset=utf-8");
Person p = new Person(1001, "张三", "男", "广西");
// 1. java实体转json对象
JSONObject jsonObj = JSONObject.fromObject(p);
//发送数据 字符串形式
response.getWriter().println(jsonObj);
System.out.println(jsonObj); }else if(method.equals("jsonList")){
//设置编码格式 不然会显示乱码
response.setContentType("text/html;charset=utf-8");
List<Person> pList = new ArrayList<Person>();
Person p1 = new Person(1001, "张三", "男", "广西");
Person p2 = new Person(1002, "李四", "女", "广东");
Person p3 = new Person(1003, "王五", "男", "四川");
pList.add(p1);
pList.add(p2);
pList.add(p3);
JSONArray jsonObject = JSONArray.fromObject(pList);
System.out.println("集合长度是"+jsonObject.size());
response.getWriter().println(jsonObject);
}else if(method.equals("jsonMap")){
//设置编码格式 不然会显示乱码
response.setContentType("text/html;charset=utf-8");
Map<String,Person> mp = new HashMap<String,Person>();
mp.put("管理员", new Person(1001, "张三", "男", "广西"));
mp.put("游客", new Person(1002, "张四", "男", "广西"));
JSONArray jsonMap = JSONArray.fromObject(mp);
//发送数据
response.getWriter().println(jsonMap);
}
} }

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. inode与block知识总结

    inode概述:硬盘要分区,然后格式化,创建文件系统在每个Linux存储设备的分区被格式化为ext3文件系统后一般有两个部分:    第一部分Inode:存储这些数据的属性信息(大小,属主,归属的用户 ...

  2. vue中组件传值方式汇总

    在应用复杂时,推荐使用vue官网推荐的vuex,以下讨论简单SPA中的组件间传值. 一.路由传值 路由对象如下图所示: 在跳转页面的时候,在js代码中的操作如下,在标签中使用<router-li ...

  3. inventor安装失败怎样卸载安装inventor 2015?

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  4. 当post 的字段很多,post的字段并不完全修改(有的值是前端input的值,有的任保留原来原来数据库的值),

    有一种解决方法(ps:from ljq):  把数据库的值先全部遍历出来,然后再对遍历出来值的$key进行一个判断, example: foreach ($results[0] as $key =&g ...

  5. 再次梳理css3动画部分知识

    1.transform: 适用于2D或3D转换的元素 transform-origin:元素的位置点 css3转换(2D转换和3D转换):可以对元素进行移动.缩放.转动.拉长或拉伸. 2D转换:tra ...

  6. Java对象转换成Json字符串是无法获得对应字段名

    问题: 代码中已经标注 @JSONField(name = "attrs") private String abc; public String getA() { return a ...

  7. 安装BI Publisher Desktop报错:“Template Builder Installer Failed:Unexpected Error”

    原因:office的版本未安装正确,应该安装X86版本的,如果是X64的会出现,重新安装X86版本的office后解决问题.

  8. 【Android学习入门】Android studio基本设置

    1.背景设置 依次选择File->Settings-->Appearance & Behaviour->Apprearance,然后勾选 show line number. ...

  9. lunix重启service network restart错误Job for network.service failed. See 'system 或Failed to start LSB: Bring

    1.mac地址不对 通过ip addr查看mac地址,然后修改cd /etc/sysconfig/network-scripts/目录下的文件里面的mac地址 2.通过以下方法 systemctl s ...

  10. sharepoint 2010 FieldLookup 的更新方法

    网上有,但是是错误的,稍微改一下,就可以了 第一个方法是要更新的item,其中 _fieldname 为要更新的lookup字段名字,_lookupValue为要更新的值. public void S ...