这是一个json格式的字符串

第一种情况(简单格式)

String result = "{\"name\":\"小明\",\"age\":\"12\"}";
JSONObject  json = new JSONObject(result);
System.out.println("name="+json.getString("name")+",age="+json.getString("age"));

运行输出结果

name=小明,age=12

第二种情况(带数组)

String result = "{\"name\":\"小明\",\"age\":\"12\",\"family\":[{\"baba\":\"大明\"},{\"mama\":\"小明的妈妈\"},{\"meimei\":\"小明的妹妹\"}]}";
JSONObject jsonobject = new JSONObject(result);
for(int i=0;i<jsonobject.getJSONArray("family").length();i++){
String family = jsonobject.getJSONArray("family").get(i).toString();
JSONObject jsonfamily = new JSONObject(family);
System.out.println(jsonfamily);
}

运行输出结果

{"baba":"大明"}
{"mama":"小明的妈妈"}
{"meimei":"小明的妹妹"}

json解析就是这些了,如果复杂的话也就是一层一层获取。

json组装

需要组装的格式

{
    "status": [
        {
            "title": "标题",
            "contents": [
                {
                    "content": "内容"
                },
                {
                    "content": "内容2"
                }
            ],
            "status": "状态"
        }
    ],
    "nodetow": "第二个",
    "nodeone": "第一个"
}

开始组装

JSONObject Msg = new JSONObject();
Msg.put("nodeone", "第一个");
Msg.put("nodetow", "第二个");
JSONArray status = new JSONArray();
JSONObject In = new JSONObject();
In.put("status", "状态");
In.put("title", "标题");
JSONArray contents = new JSONArray();
JSONObject content = new JSONObject();
content.put("content", "内容");
JSONObject content2 = new JSONObject();
content2.put("content", "内容2");
contents.put(content);
contents.put(content2);
status.put(In);
In.put("contents", contents);
Msg.put("status", status);
System.out.println(Msg);

测试组装成功。

json中JSONObject的get()与getString()方法的区别

在使用JSONObject的时候,使用getString()获取值,发现报错了,异常是返回的类型不是一个字符串。后来发现方法用错了,在这里记录一下。并分别说一下它们的区别。

get()根据键获取一个对象,就是说,如果使用这个方法,你获取到的就是一个对象,既然是对象,那么获取到的就有可能是任意类型。

getString()返回一个字符串的值,你得确认你获取的值是一个字符串,才使用这个方法,不然就会抛异常了。

转载:https://blog.csdn.net/woshimeihuo/article/details/50509191

java解析和组装json以及一些方法的理解的更多相关文章

  1. 【Java_Spring】java解析多层嵌套json字符串

    java解析多层嵌套json字符串    

  2. java解析多层嵌套json字符串

    java分别解析下面两个json字符串 package jansonDemo; import com.alibaba.fastjson.JSON; import com.alibaba.fastjso ...

  3. java解析复杂的json字符串

    Java解析Json字符串--复杂对象(方法一)   { "name": "三班", "students": [ { "age&q ...

  4. java解析xml的4种经典方法

    ========================================== xml文件 <?xml version="1.0" encoding="GB2 ...

  5. QT解析和组装json

    json这个小朋友熟悉又陌生,今天给同学们好好讲讲QT是如何使用json的,一句话:简单 1.什么是json? A:json就是个<key,value>字符串 ①一个json对象 {&qu ...

  6. JAVA解析XML有哪几种方法?并简述各自的优缺点

    DOM: 是用与平台和语言无关的方式表示XML文档的官方W3C标准,分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.是基于信息层次的 优点有:由于树在内存中是持久的,因此可以修改它以 ...

  7. JAVA 解析复杂的json字符串

    转自:https://blog.csdn.net/lovelovelovelovelo/article/details/73614473String parameter = { success : 0 ...

  8. java 中的set方法和get方法的理解

    get的意思是获取,set的意思是设置. get方法和set方法是实现类的封装访问的很好的工具. 当类中的变量设为private 时,他的意思就是说,只能通过自身和子类的访问,但是对于别的其他的类来说 ...

  9. JAVA代码解析String字符串(json格式的)

    java解析String字符串(json格式) 需要jar包:json-lib-2.4-jdk15.jar 一. String str = "{\"name\":\&qu ...

随机推荐

  1. ble ic

    ti cc25xxnordic nrf24xx nrf51xx nrf52xx Beken bk34xx

  2. 复杂sql优化步骤与技巧

    数据管理型系统,由于用户的要求或者系统设计要求,会出现大量表进行join,还要进行大量统计性数据查询展示,甚至数据权限控制等操作.最后会导致sql异常复杂,随着数据量增加,或者只是应用到生产环境(正式 ...

  3. IMP-00058: ORACLE error 1882 encountered

    问题现象: IMP: ORACLE error encountered ORA: timezone region not found ORA: at "SYS.DBMS_EXPORT_EXT ...

  4. python 之多线程join()

    join()其实就是阻塞线程,控制线程的执行,从而控制住代码的执行顺序. 参照这篇文章:python3对多线程join的理解 通常都是,线程join()后,顺序执行join()后面的代码,如下面的例子 ...

  5. Linux下python3的安装以及redis的使用

    python3的安装 上传Python-3.5.2.tar.xz软件到 /server/tools 中 解压 :tar xf   Python-3.5.2.tar.xz 编译安装cd Python-3 ...

  6. Android异常与性能优化相关面试问题-OOM异常面试问题详解

    什么是OOM? 当前占用的内存加上我们申请的内存资源超过了Dalvik虚拟机的最大内存限制就会抛出Out Of Memory异常. 一些容易混淆的概念: 内存溢出:指的就是OOM. 内存抖动:是短时间 ...

  7. 第六章 组件 60 组件切换-应用切换动画和mode方式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  8. swoole table

    swoole_table #在内存中建立一张表,用来存放进程交互过程中使用的数据,与memocache似有异曲同工之妙#用法 <?php$table = new swoole_table(204 ...

  9. 关于vue.js element ui 表单验证 this.$refs[formName].validate()的问题

        方法使用前需了解: 来自”和“小编的小提示: 首先打印一下this.$refs[formName],检查是否拿到了正确的需要验证的form. 其次在拿到了正确的form后,检查该form上添加 ...

  10. python-无联网情况下安装skt-learn

    请从上到下安装 numpy importlib pytz python-dateutil pandas scipy pasty statemodels backports.functools_lru_ ...