JSONObject 对于放入的object,最终生成的json是什么样的?

两个JavaBean:

public class ClassBean {
private int grade;
private String className;
private boolean isExperimentalClass;
private List students;
//······
}
public class StudentBean {
private String stuName;
private int sno;
private Map scores;
private List hobby;
//·······
}

对于javeBean 生成JSON

public class JsonTest {
    public static void main(String[] args) {
        ClassBean classBean = new ClassBean();
        List stus = new ArrayList();
        StudentBean stu1 = new StudentBean();
        stu1.setSno(110701);
        stu1.setStuName("JIM");
        Map scores = new HashMap();
        scores.put("math", 95);
        scores.put("chinese", 95);
        scores.put("english", 92);
        stu1.setScores(scores);
        List hobby1 = new ArrayList();
        hobby1.add("run");
        hobby1.add("eat");
        hobby1.add("sleep");
        stu1.setHobby(hobby1);
        stus.add(stu1);
        StudentBean stu2 = new StudentBean();
        stu2.setSno(110702);
        stu2.setStuName("KIM");
        Map scores2 = new HashMap();
        scores2.put("math", 98);
        scores2.put("chinese", 96);
        scores2.put("english", 92);
        stu2.setScores(scores2);
        List hobby2 = new ArrayList();
        hobby2.add("read");
        hobby2.add("play");
        stu2.setHobby(hobby2);
        stus.add(stu2);
        classBean.setClassName("二班");
        classBean.setExperimentalClass(false);
        classBean.setGrade(1);
        classBean.setStudents(stus);
        
        JSONObject jobj = new JSONObject();
        jobj.put("class", classBean);
        System.out.println(jobj.toString());
    }
}

输出的结果:

{
    "class": {
        "className": "二班",
        "experimentalClass": false,
        "grade": 1,
        "students": [
            {
                "hobby": [
                    "run",
                    "eat",
                    "sleep"
                ],
                "scores": {
                    "math": 95,
                    "english": 92,
                    "chinese": 95
                },
                "sno": 110701,
                "stuName": "JIM"
            },
            {
                "hobby": [
                    "read",
                    "play"
                ],
                "scores": {
                    "math": 98,
                    "english": 92,
                    "chinese": 96
                },
                "sno": 110702,
                "stuName": "KIM"
            }
        ]
    }
}

生成json对象的更多相关文章

  1. PHP“Cannot use object of type stdClass as array” (php在调用json_decode从字符串对象生成json对象时的报错)

    php再调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误 错误:Cannot use object of type stdClass as arra ...

  2. JS 动态生成JSON对象

    JS 动态生成JSON对象,一般用到JSON传递参数的时候,会用到. function onGeneratedRow(columnsResult) { var jsonData = {}; colum ...

  3. aspx后台生成json对象

    json对象应用很广,有时,我们要把一些数据转化为json对象,就需要用到以下方法了. 1.使用Newtonsoft.Json.DLL (推荐使用) 下载地址:http://files.cnblogs ...

  4. javascript中字符串格式json如何转化成json对象

    什么是JSON JSON(JavaScript Object Notation)是一种优美的JavaScript对象创建方法.JSON也是一种轻量级数据交换格式.JSON非常易于人阅读与编写,同时利于 ...

  5. javascript中字符串格式转化成json对象记录

    什么是JSON JSON(JavaScript Object Notation)是一种优美的JavaScript对象创建方法.JSON也是一种轻量级数据交换格式.JSON非常易于人阅读与编写,同时利于 ...

  6. eval("("+json对象+")")

    var obj=eval("("+data+")"); 看看下面这条,应该能想到json的数据结构“+(json对象名)+”由于json是以”{}”的方式来开始 ...

  7. Json对象和字符串互相转换 数据拼接 JSON使用方式

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 一.JSON字符串转换为JSON对象: eval() 和 JSON.parse eg- json字符串: ...

  8. javascript json字符串转json对象方法

    /* * @method 将拼接好字符串格式的json 转成json对象 * @param jsonData param fomart: * var jsonData = "{name1:' ...

  9. JavaScript:JSON对象

    一.JSON对象概念 JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式,这意味着在 JavaScri ...

随机推荐

  1. SQL Server 临时表 Vs 表变量

    开始 说临时表和表变量,这是一个古老的话题,我们在网上也找到很多的资料阐述两者的特征,优点与缺点.这里我们在SQL Server 2005\SQL Server 2008版本上通过举例子,说明临时表和 ...

  2. 数据库mysql中distinct关键词

    在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值.关键词 distinct用于返回唯一不同的值. 例如,在学生信息表中,你想查询该学校有多少个系.例如, ...

  3. [转]十款提高开发效率的PHP编码工具

    1 . PHPUnit 测试在软件开发中是相当重要的一环,但很多开发者都只是给予很少的时间去测试,因为这工作的确相当耗时,枯燥并且容易出错.为了解决以上问题,自动化测试工具能让开发者编写一系列测试脚本 ...

  4. linux 命令 第一波

    man 命令名字 查看命令详细解释 q退出cd 切换目录cd .. 回到上级目录su 切换用户pwd 当前目录mkdir cmy 创建cmy文件夹[目录]rm cmy 删除cmy文件夹[如果cmy里面 ...

  5. Css_Backgroud-position(背景图片)定位问题详解

    background-position的说明:    设置或检索对象的背景图像位置.必须先指定 background-image 属性.该属性定位不受对象的补丁属性( padding )设置影响.   ...

  6. Java多线程同步的方法

    一 synchronized关键字 1.synchronized实现原理: ---基于对象监视器(锁) java中所有对象都自动含有单一的锁,JVM负责跟踪对象被加锁的次数.如果一个对象被解锁,其计数 ...

  7. about opencl

    Platform:LG G3,Adreno 330 1. 8M(3264x2448) memmap方式读入时间24ms,读出时间12ms,时间与内存大小基本成线性关系.使用memmap 与 memco ...

  8. git tag之后如何修改

    先 git clone 整个仓库,然后 git checkout tag_name 就可以取得 tag 对应的代码了. 但是这时候 git 可能会提示你当前处于一个“detached HEAD&quo ...

  9. C++ Primer 第二章 引用 指针 const限定符

    1.引用: 为对象起了另外一个名字,引用类型引用另外一种类型,通过将声明符写成&d的形式来定义引用类型,其中d也就是声明的变量名(声明符就是变量名). PS:1.通过图片中编译所提示的报错信息 ...

  10. win7下载

    正式版WIN7的64位旗舰版 http://pan.baidu.com/share/link?shareid=60038&uk=3960800092 下面是正式win8Windows 8 64 ...