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. 将一个对象push到数组之中的几点问题

    在项目开发中我们需要向意数组中添加对象:首先想到的是利用数组的api,----push demo: var ar = [1,2,3] var ar2 = [11,22,33] var obj = { ...

  2. Selenium测试专项三班隆重开班

    Selenium测试专项三班隆重开班 应广大测试技术人员要求,以及企业技术需求.Selenium提前一周开课了,只针对合作的每家企业提供1-2个参训名额.预计培训60人次.但报名人数却远远超出我们预期 ...

  3. Win10专业版下图片拖到PS无法打开的解决技巧

    PS这个软件是用户最常用的软件之一,其强大的图形处理能力毋庸置疑.有用户表示在Win10专业版系统中使用PS发现图片不能直接拖动到PS中打开,这个问题本身不是特别大的问题,但这一小小的毛病会打破用户习 ...

  4. 关于php 高并发解决的一点思路

    涉及抢购.秒杀.抽奖.抢票等活动时,为了避免超卖,那么库存数量是有限的,但是如果同时下单人数超过了库存数量,就会导致商品超卖问题.那么我们怎么来解决这个问题呢,我的思路如下(伪代码): sql1:查询 ...

  5. Linq: Aggregate

    Aggregate累加器 今天看东西的时候看见这么个扩展方法Aggregate(累加器)很是陌生,于是乎查了查,随手记录一下. 直接看一个最简答的版本,其他版本基本没什么区别,需要的时候可看一下 pu ...

  6. centos7 下nfs的配置

    td p { margin-bottom: 0cm } p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 补充知识: RPC 主程序: ...

  7. java Http消息传递之POST和GET两种方法--通过实用工具类来获取服务器资源

    实现该方法需要导入一些jar包 可以去一下地址下载: http://pan.baidu.com/s/1hqrJF7m /** * 实用工具类来获取服务器资源 * * get方法传送数据 * * 1.通 ...

  8. java设计模式--基础思想总结--父类引用操作对象

    看设计模式的相关书籍也有一段时间了,一开始其实是抱着作为java三大框架的基础知识储备来学习的,不过到后来,才发现,在设计模式的一些准则装饰下,java的面向对象威力才真正地体现出来,后面的将会陆续地 ...

  9. 永久设置mysql中文乱码问题

    1.进入mysql的命令窗口 输入 show variables like '%char%'; 查看当前编码是否为UTF-8 2.在上述命令的结果中我们可以看到Wamp的安装目录,找到这一目录,在里面 ...

  10. 不完全图解HTTP

    在2D平面上行走的时候,认识只局限于“点”,刚认识一个新的点,就把之前的那个点忘记了,捡了芝麻丢西瓜.只从3D视角俯瞰时,把这些点连接在一起,点成线,线成面时,才能有所顿悟.话不多说,这是我对HTTP ...