java json 构造_json 构造和解析

目录:

(1)引入jar包;

(2)json的构造;

(3)json的解析;

(4)遍历未知key。

(1)java对json的处理,可借助org.json.jar.

org.json

json

20090211

(2)json的构造

//construct json and output it

public String constructJson() throws JSONException {

JSONObject map1 = new JSONObject();

map1.put("name", "张三");

map1.put("password", "123");

System.out.println("map1 --->" + map1);

JSONObject map2 = new JSONObject();

map2.put("name", "李四");

map2.put("password", "456");

System.out.println("map2 --->" + map2);

JSONArray list = new JSONArray();

list.put(map1);

list.put(map2);

System.out.println("jsonMembers --->" + list);

JSONObject json=new JSONObject();

json.put("users", list);

System.out.println("json --->" + json);

return json.toString();

}

public static void main(String args[]) throws Exception{

RoomTool rt = new RoomTool();

rt.constructJson();

}

输出如下:

map1 --->{"password":"123","name":"张三"}

map2 --->{"password":"456","name":"李四"}

jsonMembers --->[{"password":"123","name":"张三"},{"password":"456","name":"李四"}]

json --->{"users":[{"password":"123","name":"张三"},{"password":"456","name":"李四"}]}

(3)json的解析

//construct json from String and resolve it.

public String jsonTest2() throws JSONException{

String jsonString=jsonTest();

JSONObject json= new JSONObject(jsonString);

JSONArray jsonArray=json.getJSONArray("users");

String loginNames="loginname list:";

for(int i=0;i

JSONObject user=(JSONObject) jsonArray.get(i);

String userName=(String) user.get("loginname");

if(i==jsonArray.length()-1){

loginNames+=userName;

}else{

loginNames+=userName+",";

}

}

System.out.println("loginNames --->" + loginNames);

return loginNames;

}

public static void main(String args[]) throws Exception{

RoomTool tool = new RoomTool();

tool.jsonTest2();

}

输出如下:loginNames --->loginname list:zhangfan,zf

(4)遍历未知key

public void parseJson(String jsonString) throws JSONException{

JSONObject json= new JSONObject(jsonString);

Iterator it = json.keys();

while(it.hasNext()){

String key = it.next().toString();

int values = Integer.parseInt((String)json.get(key));

System.out.println(key + "--->" + values);

}

}

public static void main(String args[]) throws Exception{

RoomTool tool = new RoomTool();

tool.parseJson("{\"1\":\"0\",\"2\":\"30\",\"3\":\"15\",\"4\":\"15\",\"5\":\"20\",\"6\":\"20\"}");

}

输出:

1--->0

2--->30

3--->15

4--->15

5--->20

6--->20

一.Json对象与Json字符串的转化

1.jQuery插件支持的转换方式:

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象

2.浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:

JSON.stringify(obj)将JSON转为字符串。JSON.parse(string)将字符串转为JSON格式;

var a={"name":"tom","sex":"男","age":"24"};

var b='{"name":"Mike","sex":"女","age":"29"}';

var aToStr=JSON.stringify(a);

var bToObj=JSON.parse(b);

alert(typeof(aToStr));  //string

alert(typeof(bToObj));//object

3.Javascript支持的转换方式:

eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号

注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。

4.JSON官方的转换方式:

http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;

可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。

二、JSON 字符串 与 java 对象的转换

1. 把java 对象列表转换为json对象数组,并转为字符串

JSONArray array = JSONArray.fromObject(list);

String jsonstr = array.toString();

2. 把java对象转换成json对象,并转化为字符串

JSONObject object = JSONObject.fromObject(user);

Log4jInit.ysulogger.debug(object.toString());

3.把JSON字符串转换为JAVA 对象数组

JSONArray json = JSONArray.fromObject(userStr);//userStr是json字符串

List users= (List)JSONArray.toCollection(json, User.class);

4.把JSON字符串转换为JAVA 对象

JSONObject jsonobject = JSONObject.fromObject(jsonStr);

User user= (User)JSONObject.toBean(object,User.class);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java http 上传文件_java利用httpClient实现后台文件上传请求

之前写过基于html和js的文件上传方法java 用springMVC 和HttpServletRequest 两种实现文件上传的方法和httpClient后台执行普通post请求的文章java通过httpClient从接口请求数据入库以及自动生成实体工具类,最近接到一个需求,需要用到后台去调用远程服务…

morse java_华威MORSE,华威数统那个比较好?

其实没什么高下之分了。 毕竟大家都在一个系,上下课交作业都在一起。我个人觉得,数统要比morse更flexible一些。首先你要明白morse和数统课程上的区别在哪里:数统 大一必修数统大一必修共计84CATSmorse大一必修morse大一必修共计120CATS其实差的就是EC10…

java中 以下接口以键_java复习题

1.Java中的long类型占用()个字节。A、1B、2C、4D、82.以下关于继承的叙述不正确的是()。A、在Java中类只允许单一继承B、在Java中一个类只能实现一个接口C、在Java中一个类可以同时继承一个类和实现一个接口D、在Java中接口允许多继承3.4&…

Java游戏有易筋经_易筋经- JavaWeb-1

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言组成部分:ECMAScript:js基础语法(规定 关键字 运算符 语句 函数…

java导出hbase表数据_通用MapReduce程序复制HBase表数据

编写MR程序,让其可以适合大部分的HBase表数据导入到HBase表数据。其中包括可以设置版本数、可以设置输入表的列导入设置(选取其中某几列)、可以设置输出表的列导出设置(选取其中某几列)。原始表test1数据如下:每个row key都有两个版本的数据,…

java双语试卷_Java程序设计基础(双语)试题题目及答案,课程2021最新期末考试题库,章节测验答案...

若二项式(x+13x)n的展开式中含3x的项是第三项,则n的值是______.(x2+1ax)6(a>0)的展开式中常数项是15,那么展开式中所有项系数和是______.(x2+1ax)6(a>0)的展开式中常数项…

java服务器和linux_在Linux下开一个Java服务器(使用CatServer Pro)

引言Linux开服具有快速,高效,性能等特点,而Windows虽然简单,但是不具备Linux良好的性能。本教程就说明一下简单的Linux开服方式(需要教程的人,如果你学会后,请无偿帮助更多的人。)服务器准备首先。先准备一…

java中js九个隐含对象_第九章 JSP标签——《跟我学Shiro》

Shiro提供了JSTL标签用于在JSP/GSP页面进行权限控制,如根据登录用户显示相应的页面按钮。导入标签库标签库定义在shiro-web.jar包下的META-INF/shiro.tld中定义。guest标签欢迎游客访问,登录用户没有身份验证时显示相应信息,即游客访问信息。…

java中jsp标准动作_JavaBean和jsp标准动作

一.JavaBean 1.理解:可以重用的java类 2.分类 1)封装数据的bean(相当于实体类) 2)封装业务的bean(一般就是实现增删改查) 3.注意: 1)封装数据的bean一般要满足如下两个条件 1.implements Serializable:实现序列化接口 2.拥有一个无参的public…

我的世界java版游戏崩溃_我的世界全攻略之-游戏崩溃的解决方法

我的世界崩溃怎么办?下面吾爱网小编给大家带来我的世界无法正常启动的解决方法,需要的朋友可以参考下。我的世界作为许多玩家都十分喜爱的模拟经营沙盘类游戏,经常有玩家反映在玩我的世界的时候,游戏总是会出现崩溃或者无法启动的情况,玩家在遇到的时候不知道怎么办…

手写实现java中的trim_JS中字符串trim()使用示例

示例一:测试JS扩展方法// 合并多个空白为一个空白String.prototype.ResetBlank function() { //对字符串扩展var regEx /\s/g;return this.replace(regEx, );};window.onload function(){var str "你 在他想还好吗?";alert(str);str str.ResetBlan…

java excil表格开发_JAVA导出Excel电子表格的方法

JAVA导出Excel电子表格的方法package com.qingruxu.excel;import java.io.File;import java.io.IOException;import java.net.URL;import jxl.Sheet;import jxl.Workbook;import jxl.format.Border;import jxl.read.biff.BiffException;import jxl.write.Blank;import jxl.writ…

vue3 新项目 - 搭建路由router

创建router/index 文件 main.ts 安装 router 然后 在 app下面 去 设置 路由出口

java json中的注释_如何使用Java中的@Expose注释从JSON中排除字段?

Gson Expose批注可用于标记要公开或不公开(串行化或反序列化)的字段。 expose注释可以取两个参数和每个参数是可以采取任一值的布尔真或假。为了使GSON对Expose批注做出反应,我们必须使用GsonBuilder类创建一个Gson实例,并需要调用excludeFieldsWithoutE…

java 屏蔽邮箱_使用javamail发送邮件的时候如何阻止附件内容输出到控制台

我在使用JavaMail发送带附件的邮件时候,每次到了Transport.sendMessage()这一步,控制台就会输出附件内容,请问如何设置可以取消输出呢?public void sendFileAttachedMail(String fromMail, String toMail, String fromMailPwd, St…

java如何获得相反的颜色_javascript – 如何根据当前颜色生成相反的颜色?

更新:GitHub上的生产就绪代码.我就是这样做的:>将HEX转换为RGB>反转R,G和B组件>将每个组件转换回HEX>用零和输出填充每个组件.function invertColor(hex) {if (hex.indexOf(#) 0) {hex hex.slice(1);}// convert 3-digit hex to 6-digits.…

php暂停循环,在特定数量的递归循环后,PHP停止执行

我遇到的问题很奇怪。 在执行递归循环时会发生这种情况。 使用for循环或任何其他迭代执行相同任务时,不会发生这种情况。在?21 000次以下递归调用函数时,一切正常。 超过此数字时会出现问题。我的工作代码:foo();function foo($i 1) {if ($…

thinkphp3 php jwt,thinkphp框架使用JWTtoken的方法详解

本文实例讲述了thinkphp框架使用JWTtoken的方法。分享给大家供大家参考,具体如下:简介一:JWT介绍:全称JSON Web Token,基于JSON的开放标准((RFC 7519) ,以token的方式代替传统的Cookie-Session模式&#xf…

php 64位编码解码,php base64 编码和解码

/*** 自定义规则方式编码和解码**/public function test_changinttoStr () {$intvalue1 1232344234;$intStr ;$str "Y 9 L F k g y 5 R o v i x I 1 a O f 8 U h d s 3 r 4 D M p l Q Z J X P q e b E 0 W S j B n 7 w V z m N 2 G c 6 T H C A K u t";$seq expl…

matlab能力处理,书+程序《MATLAB图像处理:能力提高与应用案例》赵小川

【实例简介】MATLAB图像处理能力提高与应用案例 [赵小川 编著] 2014年版,书程序(仅供学习)【实例截图】【核心代码】c3c59b5e-16c1-4bda-938e-8fcfb2ff870d└── 《MATLAB图像处理:能力提高与应用案例》书程序├── 1.1 图像多分辨率金字塔.zip├── 1.2图像的矩…