关闭

java中Map、JSONArray、JSONObject的关系及转换以及json字符串与json对象的转化

标签: JSONjava
21475人阅读 评论(0) 收藏 举报
分类:

    本文通过实际代码来探讨一下java中的Map、JSONArray、JSONObject的关系及其转换。直接上代码:

import java.util.HashMap;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
//如果没有这些包请去这个地址下载:http://download.csdn.net/download/liu_ares/9962569
public class JSONTest1 {
    public static void main(String[] args){
        JSONObjectSample();
        JSONObject json = createJsonByMapTest();
        System.out.println(json.getString("name"));//getString(String)方法就可以获得对应String的值
        JSONArray majorArray = json.getJSONArray("major");//获取JSON中的数组的时候需要通过getJSONArray(String) 返回值是一个JSONArray对象 通过这个对象的get(int index)方法就可以通过索引index获取对应索引的值
    }

    private static JSONObject JSONObjectSample() {
        JSONObject jsonTest = new JSONObject();//直接创建一个JSONObject对象
        Object nullObject = null;
        try{
            jsonTest.put("name", "shuqi");//直接往JSONObject对象内put JSON键值对
            jsonTest.put("birthday", "1998-12-08");
            jsonTest.put("major",new String[]{"Software","English"});//json的value传数组
            jsonTest.put("girlfriend", nullObject);//如果这里使用null为第二个参数 会产生歧义 所以这里使用nullObject代替null跳过编译
            System.out.println(jsonTest.toString());
        }
        catch(Exception e){
            e.printStackTrace();
        }
        return jsonTest;
    }
    
    private static JSONObject createJsonByMapTest(){
        String nullObject=null;
        Map<String,Object>  jsonTestMap = new HashMap<String,Object>();
        jsonTestMap.put("name", "shuqi");
        jsonTestMap.put("birthday", "1998-12-08");
        jsonTestMap.put("major",new String[]{"Software","English"});//json的value传数组
        jsonTestMap.put("girlfriend", nullObject);//如果这里使用null为第二个参数 会产生歧义 所以这里使用nullObject代替null跳过编译
        JSONObject jsonTest = new JSONObject();
        jsonTest.putAll(jsonTestMap);//putAll(Map) 将Map变成json
        System.out.println(jsonTest.toString());
        return jsonTest;
    }
}

总结:在创建JSON的时候,可以先new一个JSONObject对象,然后直接通过JSONObject对象的put函数往这个JSONObject对象内添加JSON键值对,也可以通过生成一个Map对象,往Map里生成键值对,然后通过JSONObject对象的putAll(Map)方法将Map转化为JSONObject对象。由于JSONObject对象中对应某个键的值是一个数组,这个时候就需要用到getJSONArray(String key)的方法来获取对应key的数组,然后再返回的JSONArray数组对象的get(int index)方法获取该数组对应索引的值。

最后加上json字符串与json对象的转化:entity obj =  JSONObject.toBean(JSONObject.fromObject(jsonstr), entity.getClass());//这样就可以将jsonstr这个json字符串以json对象的形式存在类类型为entity.getClass()的对象obj里。

1
0
查看评论

JSON对象中的JSONObject和JSONArray以及与Map、String、数组的转化

JSON对象中的JSONObject和JSONArray以及与Map、String、数组的转化
  • bestcxx
  • bestcxx
  • 2016-01-27 18:33
  • 4393

Java基础系列16:使用JSONObject和JSONArray解析和构造json字符串

转自:https://www.zifangsky.cn/561.html 一 介绍 在Java开发中,我们通常需要进行XML文档或JSON字符串的构造和解析。当然在Java Web开发中有一些第三方插件是可以自动完成Java对象和json之间的转换的,比如:jackson插件(PS:关于ja...
  • zh123456zh789
  • zh123456zh789
  • 2017-03-27 10:25
  • 1542

java和js中JSONObject,JSONArray,Map,String之间转换——持续更新中

1.String转JSONObject String jsonMessage = "{\"语文\":\"88\",\"数学\":\"78\",\"计算机\":\"99\"...
  • superit401
  • superit401
  • 2016-06-21 17:24
  • 46393

fastjson对json字符串JSONObject和JSONArray互相转换操作示例

package com.tapt.instance; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public cl...
  • qq_36330643
  • qq_36330643
  • 2017-09-14 10:11
  • 962

JSONObject、JSONArray结合Map的使用案例

1、Service中的实现方法: JSONObject中有字符串,有JSONArray数组,而JSONArray数组中还有JSONObject。 /** 根据账号查询所持有的卡列表 * @param weChatId * @return * {"Return":tru...
  • zuoyixiao
  • zuoyixiao
  • 2014-11-19 17:26
  • 3410

判断字符串是JSONObject还是JSONArray

使用 JSONTokener。 JSONTokener.nextValue() 会给出一个对象,然后可以动态的转换为适当的类型。String jsonStr = "...."; //json字符串 Object json = new JSONTokener(jsonStr).n...
  • k469785635
  • k469785635
  • 2017-07-26 16:53
  • 4236

JQuery操作JSONObject/JSONArray对象

var caseJsonArr = []; for(var i=0; i<rows.length; i++){ var jsonData = {}; jsonData.p_v_id=rows[i].p_v_id; jsonData.conf_id=rows...
  • wwHRestarting
  • wwHRestarting
  • 2016-09-04 12:09
  • 410

JSONObject/JSONArray的区别

JSONObject/JSONArray的区别(1)JSONObject : java对象,用{}包裹起来 例如:{”id”:1 , “username”:”wp”} (2)JSONArray : 数组或字符串[1,2,3] (3)特殊形式: {“id”:1 , “username:” :”...
  • wangpei555
  • wangpei555
  • 2016-12-04 09:51
  • 1342

JSONObject、JSONArray方法使用详解

1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包。 2.下载jar包 http://files.cnblogs.com/java-pan/lib.rar 提供了除JSONObj...
  • sunny_na
  • sunny_na
  • 2017-01-20 11:59
  • 6225

JSONObject、JSONArray区别

最近两个星期接触最多的就是json和map了。    之前用到的json,就是一个键对应一个值,超级简单的一对一关系。现在用到的json那可以层层嵌套啊,刚开始接触的时候,确实有种崩溃的赶脚,不想去理,取个数据还那么麻烦。其实,就跟if else语句一样,如果if中套if,...
  • GarfieldEr007
  • GarfieldEr007
  • 2017-03-26 22:20
  • 856
    个人资料
    • 访问:428720次
    • 积分:3978
    • 等级:
    • 排名:第9392名
    • 原创:94篇
    • 转载:45篇
    • 译文:0篇
    • 评论:21条
    最新评论