JSON中存储的是key:value,其实在编程的时候我们会遇到很多都是key:value的形式。比如:map,java对象(一个对象的一个属性只会有一个值),数据库中key:value对应着里面存储的一个数据,redis的本质就是key:value。所以你会发现key:value很有用。

1.将任何形式的内容转换成key:value形式的字符串(观察输出),比如json文件。

{
"name": "Tom",
"age" : 12,
"book":{"1":"Math","2":"Chinese","3":"English"},
"interest" : ["football","basketball"],
"student" : {"name" :"Tom","age":22,"book":"String"} }

到网上搜一下,有很多人都写了将.json文件转换成字符串的方式,再转换成JSONObject。目前只找到GSON,直接输入json文件的位置,直接输出一个类似于JSONObject的东西(还没仔细研究),其他的方法还没有找到。

2.将string转换成JSONObject。

package json;

import java.awt.List;
import java.util.ArrayList; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; public class TestJson { public static void main(String[] args) {
//将JSON文件读取成字符串形式,目前还没有找到哪个好的方法直接转,网上都可以搜到。
//GSON可以直接装,但是GSON的包跟这里的包又不一样 Util fr = new Util();
String str = fr.ReadFile("src/json1.json");
//看看把json文件读取成字符串的形式。
System.out.println(str.toString()); //将字符串转换成JSONObject。通过JSONObject可以获取任何东西。
//还可以遍历
JSONObject student1 = JSON.parseObject(str); String name = (String) student1.get("name");
//获取的是字符串。
String book = student1.getString("book");
//可以将string变成JSONObject
JSONObject bookJson = JSON.parseObject(book); System.out.println(book);
//这里获取的是JSONObject
JSONObject bookObj = student1.getJSONObject("book");
String b1 = bookObj.getString("1");
String b2 = bookObj.getString("2");
String b3 = bookObj.getString("3");
System.out.println(b1+","+b2+","+b3); String interest = student1.getString("interest"); JSONArray interestArr = student1.getJSONArray("interest");
String arr1 = interestArr.getString(0);
String arr2 = interestArr.getString(1);
System.out.println(arr1+","+arr2);
//通过映射的方式。直接获得。
JSONArray inArr = student1.getObject("interest", JSONArray.class); //如果value值是一个对象,可以直接映射成一个对象。
Student stu = student1.getObject("student", Student.class); System.out.println(name); System.out.println(interest);
System.out.println(stu.toString()); } }
package json;

import java.util.List;

public class Student {

    public Student() {

    }
public Student(String name, Integer age, String book) {
this.name = name;
this.age = age;
this.book = book; } public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getBook() {
return book;
}
public void setBook(String book) {
this.book = book;
}
private String name;
private Integer age;
private String book; @Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", book=" + book
+ "]";
} }

问题:如果对象Student中包含有List<String> interest,怎么映射呢?对应的json中value是什么样式呢?如果您有相关的地址欢迎留言学习。

JSON的使用小结的更多相关文章

  1. json与jsonp小结

    json 1. json 的值可以是下面这些类型: ① 数字(整数或浮点数),比如123,1.23 ② 字符串(在双引号中) ③ 逻辑值(true 或 false) ④ 数组(在方括号中) ⑤ 对象( ...

  2. js学习-自定义函数、对象的字面量、json对象学习小结

    一.自定义对象的构造: var student=new Object(); //object是顶级对象,使用构造函数的方法创建一个对象,此处的意思是创建了一个学生的空对象 student.name=& ...

  3. combobox远程加载数据的总结和Json数据的小结

    1.从后台返回请求加载Combobox下拉框数据 html部分1 <select name="mateBelongZ" id="mateBelongZID" ...

  4. C#解析Json格式数据小结

    最近,遇到了一些不同的Json格式的数据,需要做不同处理才能转化为想要得到的结果,这里总结一下. 第一种形式:status中是{}形式,对象 string json = @"{'name': ...

  5. python爬微信公众号前10篇历史文章(5)-JSON相关内容小结

    json - JSON encoder and decoder JSON: JavaScript object notation,是一种轻量级的数据交换格式.JSON 是 JS 对象的字符串表示法,它 ...

  6. JSON的一些小结

    一.js中 1.json字符串转json对象 var json = $.parseJSON(" {'1':'hello'},{'2':'word'} "); for(var i i ...

  7. C# 中对于json的解析小结

    1.解析之前的json格式 [{ "Name": "冯111", "PID": "130627199202283306" ...

  8. java post请求的表单提交和json提交简单小结

    在java实现http请求时有分为多种参数的传递方式,以下给出通过form表单提交和json提交的参数传递方式: public String POST_FORM(String url, Map< ...

  9. 关于json对象的使用小结!

    json是前后端数据交互的关键.后端提供的接口中的数据几乎都是通过json来表现的,所以,需要对这个json做一些小结: 这里要推进谷歌的插件Fehelp前端助手,这个可以清楚的看到json的数据: ...

随机推荐

  1. 手机自动化测试:appium源码分析之bootstrap十二

    手机自动化测试:appium源码分析之bootstrap十二   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...

  2. Invalid command 'RailsBaseURI'

    官方指导 http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_on_Ubuntu_step_by_step   解决使 ...

  3. 常用linux命令及其设置

    完成一个运维的工作,以下的命令和配置是经常会用到的,总结一下工作以来的命令和配置 linux常用命令 linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享 $ mkdir – ...

  4. NPM(Node.js) 使用介绍

    前言:express 推出了4.X,自己尝试了一下,出现了各种问题.结果查看了各种文档和问题,现在在这个给大家分享下4.X版本的安装. NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具, ...

  5. python 自动化接口测试(6)

    迎接新的一波更新吧,这次是基于图灵机器人的一个api接口的测试. 这是api的接口:http://www.tuling123.com/openapi/api 我们试着通过浏览器直接访问看下 这是反馈的 ...

  6. Java环境变量详解

    自己总结些再加抄点: 安装JDK后要配置环境变量,主要有三个: 1 JAVA_HOME ->为JDK的安装目录,如:F:\JAVA\jdk1.6.0_04 2 CLASSPATH ->到哪 ...

  7. linux常用操作命令

    cd: cd /data 进入目录 cd .. 返回上级菜单tar: tar -cvf jcms20170411.tar.gz jcms/ 将jcms文件夹打包为 jcms20170411.tar.g ...

  8. Unity属性的封装、继承、方法隐藏

    (一)Unity属性封装.继承.方法隐藏的学习和总结 一.属性的封装 1.属性封装的定义:通过对属性的读和写来保护类中的域. 2.格式例子: private string departname; // ...

  9. 基于 Haproxy 构建负载均衡集群

    1.HAPROXY简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种负载均衡解决方案.HAProxy特别适用于那些负载特大的web ...

  10. STM32定时器

    /*****************************************************************************初始化定时器**************** ...