Java如何从json字符串中获取某个值详解

目录
  • Java从json串中获取某个值
  • 使用org.json进行解析
  • 使用com.alibaba.fastjson进行解析
  • 总结

Java从json串中获取某个值

java对象是不能直接传输,只有json对象 转成字符串 可以进行传输 故 传输中都是json进行的 接收到json数据之后
java在进行解析转换成为字符串。且json适用于很多语言之间的传输 json本质上就是一个map。

对应有两种json进行解析 首先就是先对json的合法性进行验证 是否可以进行解析

点击这里 进行json解析合法性

使用org.json进行解析

对下面的json数据进行获取解析

对应的相信内容的获取

首先就是 对应的json创建

                JSONObject jsonObject = new JSONObject(str);
                // 对应的一级 可以直接拿值

           		String name = JSON.getString("msg");
                JSONObject results=jsonObject.getJSONObject("result");
                System.out.println("对应的reults值 "+results);
				//  对应的result中获取日期
                System.out.println("对应的时间日期"+results.getString("date"));
                 city=results.getString("city");

				//  此种有数组 进行获取
                 JSONArray  index = results.getJSONArray("index");

				//  此处对index进行一个打印
                String[] strarray=String.valueOf(index .getJSONObject(0)).split(","); //遇到逗号就分割
                for (int i = 0; i < strarray.length; i++)
                {
                    System.out.println(strarray[i]);
                    if(strarray[i]=="{"||strarray[i]=="}")
                    {
                        System.out.println("\n"); //遇到{}就换行
                    }
                }

                 JSONObject arr=index.getJSONObject(0);

                System.out.println("对应的index1值 "+arr);

				//
                 ivalue=arr.getString("ivalue");
                 detail=arr.getString("detail");
                 iname=arr.getString("iname");

            } catch (Exception e) {
                e.printStackTrace();
            }

使用com.alibaba.fastjson进行解析

导入依赖

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.73</version>
        </dependency>

本质上和上面的一样 有一点点的小小的区别

        String name = JSON.getString("msg");
        int age = JSON.getIntValue("status");
        JSONObject result= JSON.parseObject("" + JSON.get("result"));
        String date= result.getString("date");

		// 获取对应的数组下的内容
        JSONArray index= JSON.parseArray("" + JSON.get("index"));
        JSONObject index1= (JSONObject) index.get(0);
	    String detail= index1.getString("detail");

小细节提示:

		// 对应获取对象
		JSONObject jsonObj = new JSONObject(jsonMessage);
		//  如果所含对象的值 是null  返回的值 并不是对象 null  只是一个字符串 null
		String message=jsonObj.getString("message");

*对应getString源码解释

    public String getString(String name) throws JSONException {
        Object object = get(name);
        String result = JSON.toString(object);
        if (result == null) {
            throw JSON.typeMismatch(name, object, "String");
        }
        return result;
    }

总结

到此这篇关于Java如何从json串中获取某个值的文章就介绍到这了,更多相关Java从json串获取值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java替换(新增)JSON串里面的某个节点操作

    替换JSON串里面的某个节点 这里使用的是alibaba的fastjson,使用JSONObject解析替换,这里的key存在就会替换,不存在就新增 JSONObject object = JSONObject.parseObject(jsonString); object.put("name", "张三"); object.put("phone", "13512345678"); newJsonString = object

  • java后台处理前端传的json串方法

    关于json,就不在多做介绍了,直接进入正题: 举例子: 1.现在前台做了一个Ajax请求,往数据库中添加数据: var json='{"goodName":"果粒橙","goodTitle":"这是一种好喝的","goodMessage":"这个很好喝,你还想喝 吗........","goodCost":"2","goodPrice&

  • Java转JSON串的几种方式

    昨天在与对端系统调接口的时候,对端系统对我们传过去的json串老是处理不了,后来查原因是应为我们传过去的json串里有json对象数组,因为我们的json串存在表里的,取出来是作为json字符串放到json数组里的,所以带了双引号,对端认为是字符串,不是json对象所以处理不了. [{"cardName":"bankCard1","cardCode":"888888888","cardValue":9999

  • Java如何从json字符串中获取某个值详解

    目录 Java从json串中获取某个值 使用org.json进行解析 使用com.alibaba.fastjson进行解析 总结 Java从json串中获取某个值 java对象是不能直接传输,只有json对象 转成字符串 可以进行传输 故 传输中都是json进行的 接收到json数据之后java在进行解析转换成为字符串.且json适用于很多语言之间的传输 json本质上就是一个map. 对应有两种json进行解析 首先就是先对json的合法性进行验证 是否可以进行解析 点击这里 进行json解析

  • Go Java算法之从英文中重建数字示例详解

    目录 从英文中重建数字 Java实现 Go实现 从英文中重建数字 给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9).按 升序 返回原始的数字. 示例 1: 输入:s = "owoztneoer" 输出:"012" 示例 2: 输入:s = "fviefuro" 输出:"45" 提示: 1 <= s.length <= 105 s[i] 为 ["e","g&

  • Java多线程提交按照时间顺序获取线程结果详解流程

    Maven依赖 其实要不要无所谓.主要是为了方便. <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.15</version> </dependency> 代码 不废话,上代码. package com.hy.csdn.tools; import cn.hutool.core.th

  • Java栈的运用之中缀表达式求值详解

    目录 栈运用题:中缀表达式求值 题目详情 解题思路 实现代码 栈运用题:中缀表达式求值 题目详情 给定一个表达式,其中运算符仅包含 +,-,*,/(加 减 乘 整除),可能包含括号,请你求出表达式的最终值. 注意: 数据保证给定的表达式合法. 题目保证符号 - 只作为减号出现,不会作为负号出现,例如,-1+2,(2+2)*(-(1+1)+2) 之类表达式均不会出现. 题目保证表达式中所有数字均为正整数. 题目保证表达式在中间计算过程以及结果中,均不超过 231−1. 题目中的整除是指向 0 取整

  • Java去除字符串中空格的方法详解

    昨天写了一个关于Excel文件处理的脚本,在字符串匹配功能上总是出现多余不正确的匹配,debug调试之后,发现一个坑. ------->代码中字符串使用了replaceAll()方法,去除了所有空格(其中包括:首尾空格.中间空格) 遂整理下java关于字符串去除空格的方法. 1.方法分类 str.trim(); //去掉首尾空格 str.replace(" ",""); //去除所有空格,包括首尾.中间 str.replaceAll(" "

  • C++中结构体和Json字符串互转的问题详解

    大家有没有在项目中遇到过,将一些预定义的本地结构体转换为Json字符串后,发送到网络中的情形.那我猜想下大家常规的做法:写一个函数,传入结构体的指针,然后在函数中对结构体的每一个成员根据其类型,使用Json类库的赋值方法,直接或间接创建Json子对象,组成一个内存树状结构,最后调用Json类库的方法生成字符串.这样的做法似乎比较完美,工作完成得很好,确实也挑不出什么毛病来,让我们先看看在golang中是怎么做的: type Person struct { Name string Age int

  • Java陷阱之慎用入参做返回值详解

    正常情况下,在Java中入参是不建议用做返回值的.除了造成代码不易理解.语义不清等问题外,可能还埋下了陷阱等你入坑. 问题背景 比如有这么一段代码: @Named public class AService { private SupplyAssignment localSupply = new SupplyAssignment(); @Inject private BService bervice; public List<Supply> calcSupplyAssignment() Lis

  • Java中获取文件大小的详解及实例代码

     Java 获取文件大小 今天写代码时需要实现获取文件大小的功能,目前有两种实现方法,一种是使用File的length()方法:另外一种是使用FileInputStream的available()方法,当InputStream未进行read操作时,available()的大小应该是等于文件大小的.但是在处理大文件时,后者会发生问题.我们来看一下: 在例子中,我使用了CentOS 6.5 的安装镜像文件,主要是考虑到这个文件足够大(大于2GB). 1.使用File的length()方法 publi

  • java使用jna调用c#中dll的方法详解

    前言 JNA(Java Native Access )提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码.开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射. 优点 JNA可以让你像调用一般java方法一样直接调用本地方法.就和直接执行本地方法差不多,而且调用本地方法还不用额外的其他处理或者配置什么的,

  • PHP $_FILES中error返回值详解

    $_FILES['file']['error']值 UPLOAD_ERR_OK: 0 //正常,上传成功 UPLOAD_ERR_INI_SIZE: 1 //上传文件大小超过服务器允许上传的最大值,php.ini中设置upload_max_filesize选项限制的值 UPLOAD_ERR_FORM_SIZE: 2 //上传文件大小超过HTML表单中隐藏域MAX_FILE_SIZE选项指定的值 UPLOAD_ERR_NO_TMP_DIR: 6 //没有找不到临时文件夹 UPLOAD_ERR_CAN

随机推荐