一、

导入包:net.sf.json.JSONObject

代码

import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; public class TestJSON {
public static void main(String[] args) {
/**
* public Object put(Object key, Object value)
* 将value映射到key下
* 如果此JSONObject对象之前存在一个value在这个key下,那么当前的value会替换掉之前的value
*/
JSONObject jsonObject = new JSONObject();
jsonObject.put("one", "first");
// jsonObject: {"one":"first"}
System.out.println("jsonObject: " + jsonObject.toString()); jsonObject.put("two", "second");
// jsonObject: {"one":"first","two":"second"}
System.out.println("jsonObject: " + jsonObject.toString()); jsonObject.put("two", "cover");
// jsonObject: {"one":"first","two":"cover"}
System.out.println("jsonObject: " + jsonObject.toString()); jsonObject.put("one", null);// value为null的话,直接移除key
// jsonObject: {"two":"cover"}
System.out.println("jsonObject: " + jsonObject.toString()); /**
* public JSONObject accumulate(String key, Object value)
* 累积value到这个key下
* 1.如果当前已经存在一个value在这个key下,那么会有一个JSONArray将存储在这个key下来保存所有累积的value
* 2.如果已经存在一个JSONArray,那么当前的value就会添加到这个JSONArray中
*/
JSONObject jsonObj = new JSONObject();
jsonObj.accumulate("Servers", null);// 允许value为null
jsonObj.accumulate("Servers", "Tomcat");
jsonObj.put("Codes", "Java");
jsonObj.accumulate("Codes", "JavaScript");
// jsonObj: {"Servers":[null,"Tomcat"],"Codes":["Java","JavaScript"]}
System.out.println("jsonObj: " + jsonObj.toString()); /**
* public JSONObject element(String key, Object value)
*/
JSONObject object = new JSONObject();
object.element("price", "500");
object.element("price", "1000");
// object: {"price":"1000"} 疑问: 这和put有何区别??? 说好的会调用accumulate呢???
System.out.println("object: " + object.toString());
}
}

结果如下

 jsonObject: {"one":"first"}
jsonObject: {"one":"first","two":"second"}
jsonObject: {"one":"first","two":"cover"}
jsonObject: {"two":"cover"}
jsonObj: {"Servers":[null,"Tomcat"],"Codes":["Java","JavaScript"]}
object: {"price":"1000"}

Json相关内容的更多相关文章

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

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

  2. 在ASP.NET MVC中使用Knockout实践04,控制View Model的json格式内容

    通常,需要把View Model转换成json格式传给服务端.但在很多情况下,View Model既会包含字段,还会包含方法,我们只希望把字段相关的键值对传给服务端. 先把上一篇的Product转换成 ...

  3. linux用户权限相关内容查看

    linux用户权限相关内容查看 1   用户信息 创建用户一个名为 webuser 的账号,并填写相应的信息: root@iZ94fabhqhuZ:~# adduser webuser Adding ...

  4. SharePoint安全 - 在Goolge和Bing中查找SharePoint相关内容

    博客地址 http://blog.csdn.net/foxdave 本篇提供两个查询串字典,分别对应Google和Bing的搜索,用来查询SharePoint网站的相关内容 Google ShareP ...

  5. 韩顺平细说Servlet视频系列之tom相关内容

    韩顺平细说Servlet视频系列之tom相关内容 tomcat部署项目操作(注意:6.0版本以后的支持该操作,5.x版本需要另外配置?待验证!) 项目发布到tomcat的webapps文件下,然后启动 ...

  6. jQuery实现页内查找相关内容

    当需要在页面中查找某个关键字时,一是可以通过浏览器的查找功能实现,二是可以通过前端脚本准确查找定位,本文介绍通过jQuery实现的页面内容查找定位的功能,并可扩展显示查找后的相关信息. 本文以查找车站 ...

  7. Struts2(四)——页面相关内容

    上篇博客总结了数据流转各个方面的内容,这篇重点说一下框架对于界面上知识. 一,说到页面,记得在总体介绍中,说到Struts2比Struts1的一方面优势就是它支持更多的视图技术(Freemarker, ...

  8. 学习笔记之html5相关内容

    写一下昨天学习的html5的相关内容,首先谈下初次接触html5的感受.以前总是听说html5是如何的强大,如何的将要改变世界.总是充满了神秘感.首先来谈一下我接触的第一个属性是  input的里面的 ...

  9. 基于KNN的相关内容推荐

    如果做网站的内容运营,相关内容推荐可以帮助用户更快地寻找和发现感兴趣的信息,从而提升网站内容浏览的流畅性,进而提升网站的价值转化.相关内容 推荐最常见的两块就是“关联推荐”和“相关内容推荐”,关联推荐 ...

随机推荐

  1. Pyhton学习——Day51

    model(数据库模型)------ORM----- 表与表之间的关系(两张表) 一对多 多对多 一对一 ORM------object relation mapping python的类 class ...

  2. MySQL---Day2

    -- 转载:http://www.cnblogs.com/yuanchenqi/articles/6357507.html CREATE TABLE employee1( id TINYINT PRI ...

  3. Pyhton学习——Day11

    # Python中的内部模块# 函数学习的意义:抽取重复代码# 模块:不用重复写,模块及py文件,提高了代码的可维护性,其次,编写代码不必从零开始,当一个模块编写完毕,不必再重复编写# import ...

  4. (3)pyspark----dataframe观察

    1.读取: sparkDF = spark.read.csv(path) sparkDF = spark.read.text(path) 2.打印: sparkDF.show()[这是pandas中没 ...

  5. 算法23-------岛屿的最大面积 LeetCode 695

    一.题目: 给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合.你可以假设二维矩阵的四个边缘都被水包围着. 找到给定 ...

  6. VUE:项目的创建、编写、打包及规范检查

    VUE:项目的创建.编写及打包 项目的创建 使用 vue-cli 创建模板项目(官方提供的脚手架工具) https://github.com/vuejs/vue-cli npm install -g ...

  7. vue路由传值params和query的区别

    vue路由传值params和query的区别1.query传参和接收参数传参: this.$router.push({ path:'/xxx' query:{ id:id } })接收参数: this ...

  8. 【转】Visual Studio單元測試小應用-測執行時間

    [转]Visual Studio單元測試小應用-測執行時間 Visual Studio的單元測試會記錄每一個測試的執行時間,如果有幾個Method要測效能,以前我會用Stopwatch,最近我都改用單 ...

  9. fork同一时候创建多个子进程的方法

    Fork同一时候创建多个子进程方法 第一种方法:验证通过 特点:同一时候创建多个子进程.每一个子进程能够运行不同的任务,程序 可读性较好,便于分析,易扩展为多个子进程 int main(void) { ...

  10. web前端project师知识汇总

    分类: Web开发应用  一.何为Web前端project师?           前端project师,也叫Web前端开发project师.他是随着web发展.细分出来的行业.Web前端开发proj ...