精华内容
下载资源
问答
  • 例如想截取scoreClass 这是json数据 "extra_info": { "fm_info": { "riskService": { "reason_code": "001:用户认证", "success": false

    例如想截取scoreClass

    这是json数据

     "extra_info": {
                "fm_info": {
                    "riskService": {
                        "reason_code": "001:用户认证",
                        "success": false
                    }
                },
                "application_attribute": {
                    "company_industry": "unknown",
                    "estimate_salary": 10000,
                    "social_last_handin_base": -1,
                    "loan_platform_cnt": 0,
                    "loan_cnt": 0,
                    "applied_amount_sum": 0,
                    "alipay_auth": false,
                    "social_auth": false,
                    "credit_card_auth": false,
                    "staff_level": "B",
                    "scoreClass": "D",
                    "increaseAmount": false,
                    "approval_tips": [
                        
                    ]
                }
            }
    截取代码
    String scoreClass = JacksonUtils.getInstance().fetchValue(responseData, "payload:extra_info:application_attribute:scoreClass2");

    工具类

    public class JacksonUtils {
        private static final Logger LOGGER = LoggerFactory.getLogger(JacksonUtils.class);
        private static final ObjectMapper MAPPER = new ObjectMapper();
        private static final JacksonUtils CONVERSION = new JacksonUtils();
        private static final String SEPARATOR = ":";
    
        private JacksonUtils() {
            init();
        }
    
        private static void init() {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
            MAPPER.setDateFormat(dateFormat);
            MAPPER.setSerializationInclusion(Include.NON_NULL);
        }
    
    
        public static JacksonUtils getInstance() {
            return CONVERSION;
        }
    
        public String pojo2Json(Object obj) throws IOException {
            StringWriter writer = new StringWriter();
            MAPPER.writeValue(writer, obj);
    
            return writer.toString();
        }
    
        public <T> T json2Pojo(InputStream jsonStream, Class<T> classType) throws IOException {
            T t = null;
    
            try (InputStream inputStream = jsonStream) {
                t = MAPPER.readValue(inputStream, classType);
            }
    
            return t;
        }
    
        public <T> T json2Pojo(String json, Class<T> classType) {
            try {
                return MAPPER.readValue(json, classType);
            } catch (Exception e) {
                LOGGER.error("Unexpected exception occurred!", e);
                return null;
            }
    
        }
    
        /**
         * 将JSON转化为List
         * 
         * @param json 字符串
         * @param collectionClass 泛型的Collection
         * @param elementClasses 元素类
         * @return List 转换后的对象
         */
        public static List<?> jsonConverList(String json, Class<?>... elementClasses) {
            try {
                return MAPPER.readValue(json, getCollectionType(List.class, elementClasses));
            } catch (Exception e) {
                LOGGER.error("Unexpected exception occurred!", e);
                return null;
            }
        }
    
        /**
         * 获取泛型的Collection Type
         * 
         * @param collectionClass 泛型的Collection
         * @param elementClasses 元素类
         * @return JavaType Java类型
         */
        public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {
            return MAPPER.getTypeFactory().constructParametricType(collectionClass, elementClasses);
        }
    
        public <T> T map2Pojo(Map<String, Object> map, Class<T> classType) throws IOException {
            return MAPPER.convertValue(map, classType);
        }
    
        public <T> T jsonParse(String json) throws IOException {
            return MAPPER.readValue(json, new TypeReference<T>() {});
        }
    
        /**
         * path: Like xpath, to find the specific value via path. Use :(Colon) to separate different key
         * name or index. For example: JSON content: { "name": "One Guy", "details": [
         * {"education_first": "xx school"}, {"education_second": "yy school"}, {"education_third":
         * "zz school"}, ... ] }
         * 
         * To find the value of "education_second", the path="details:1:education_second".
         * 
         * @param json
         * @param path
         * @return
         */
        public String fetchValue(String json, String path) {
            JsonNode tempNode = null;
            try {
                JsonNode jsonNode = MAPPER.readTree(json);
                tempNode = jsonNode;
                String[] paths = path.split(SEPARATOR);
    
                for (String fieldName : paths) {
                    if (tempNode.isArray()) {
                        tempNode = fetchValueFromArray(tempNode, fieldName);
                    } else {
                        tempNode = fetchValueFromObject(tempNode, fieldName);
                    }
                }
            } catch (Exception e) {
                LOGGER.error("Unexpected exception occurred!", e);
                return null;
            }
            if (tempNode != null) {
                String value = tempNode.asText();
    
                if (value == null || value.isEmpty()) {
                    value = tempNode.toString();
                }
                return value;
            }
            return null;
        }
    
        private JsonNode fetchValueFromObject(JsonNode jsonNode, String fieldName) {
            return jsonNode.get(fieldName);
        }
    
        private JsonNode fetchValueFromArray(JsonNode jsonNode, String index) {
            return jsonNode.get(Integer.parseInt(index));
        }
    
        public JsonNode convertStr2JsonNode(String json) {
            try {
                return MAPPER.readTree(json);
            } catch (Exception e) {
                LOGGER.error("Unexpected exception occurred!", e);
                return null;
            }
        }
    }

    补充这里需要引入依赖

    <dependency>  
        <groupId>com.fasterxml.jackson.core</groupId>  
        <artifactId>jackson-core</artifactId>  
        <version>2.7.4</version>  
    </dependency>  
      
    <dependency>  
        <groupId>com.fasterxml.jackson.core</groupId>  
        <artifactId>jackson-annotations</artifactId>  
        <version>2.7.4</version>  
    </dependency>  
      
    <dependency>  
        <groupId>com.fasterxml.jackson.core</groupId>  
        <artifactId>jackson-databind</artifactId>  
        <version>2.7.4</version>  
    </dependency>  



    展开全文
  • 展开全部packagetest1701;importjava.util.List;importjava.util.Map;importcom.alibaba.fastjson.JSON;importcom.google.common.collect.Lists;importcom.google.common.collect.Maps;publicclassTest3{public...

    展开全部

    package test1701;

    import java.util.List;

    import java.util.Map;

    import com.alibaba.fastjson.JSON;

    import com.google.common.collect.Lists;

    import com.google.common.collect.Maps;

    public class Test3 {

    public static void main(String[] args) {

    List> list = Lists.newArrayList();

    Map map1 = Maps.newHashMap();

    map1.put("a", 1);

    map1.put("b", 2);

    list.add(map1);

    Map map2 = Maps.newHashMap();

    map2.put("c", 3);

    map2.put("d", 4);

    list.add(map2);

    String jsonArrayString = JSON.toJSONString(list);

    System.out.println(jsonArrayString);

    String jsonObjectString1 = JSON.parseArray(jsonArrayString).getString(0);

    System.out.println(jsonObjectString1);

    String jsonObjectString2 = JSON.parseArray(jsonArrayString).getString(1);

    System.out.println(jsonObjectString2);

    }

    }

    展开全文
  • java截取某个字符之前或者之后的字符串

    万次阅读 多人点赞 2019-03-04 21:25:05
    String str = lly://...之前字符串 String str1=str.substring(0, str.indexOf("?")); 截取?之后字符串 String str1=str.substring(0, str.indexOf("?")); String str2=str.substring(str1...

    String str = lly://enterVideoList?result={jsonString};

    1. 截取?之前字符串
      String str1=str.substring(0, str.indexOf("?"));
    2. 截取?之后字符串
      String str1=str.substring(0, str.indexOf("?"));
      String str2=str.substring(str1.length()+1, str.length());
    展开全文
  • 当时我是通过截取字符串取的,后来觉得不太合理,今天整理出了两种处理解析json字符串的方式。供大家参考。顺便说一下所解析的字符串一定要是“{”开始,“}”结束,而百度地图返回数据是这样的renderReverse&&...

    简单说一下背景

    上次后端通过模拟http请求百度地图接口,得到的是一个json字符串,而我只需要其中的某个key对应的value。

    当时我是通过截取字符串取的,后来觉得不太合理,今天整理出了两种处理解析json字符串的方式。

    供大家参考。

    顺便说一下所解析的字符串一定要是“{”开始,“}”结束,

    而百度地图返回数据是这样的

    renderReverse&&renderReverse({"status":0,"result":{"location":{"lng":116.23412299999993,"lat":40.234523047443769},"formatted_address":"北京市昌平区北环路54号楼","business":"昌平县城","addressComponent":{"country":"中国","country_code":0,"country_code_iso":"CHN","country_code_iso2":"CN","province":"北京市","city":"北京市","city_level":2,"district":"昌平区","town":"","adcode":"110114","street":"北环路","street_number":"54号楼","direction":"附近","distance":"27"},"pois":[],"roads":[],"poiRegions":[{"direction_desc":"内","name":"北环里小区","tag":"房地产;住宅区","uid":"dc0f0adc0773a420f8221312"}],"sematic_description":"北环里小区内,双海包装制品厂北299米","cityCode":131}})

    所以在解析前我加了这行代码

    String subData = dataStr.substring(dataStr.indexOf("(") + 1, dataStr.lastIndexOf(")"));

    第一种(ObjectMapper)

    首先在pom文件配置需要的jar

    这里以2.4version为例

    com.fasterxml.jackson.core

    jackson-databind

    ${jackson.version}

    com.fasterxml.jackson.datatype

    jackson-datatype-hibernate4

    ${jackson.version}

    其次在java类中引入需要的外部类

    import com.fasterxml.jackson.databind.JsonNode;

    import com.fasterxml.jackson.databind.ObjectMapper;

    最后处理百度地图返回的json串

    if("" != dataStr){

    ObjectMapper objectMapper = new ObjectMapper();

    String subData = dataStr.substring(dataStr.indexOf("(") + 1, dataStr.lastIndexOf(")"));

    JsonNode jsonNode = objectMapper.readTree(subData);

    adcode = jsonNode.get("result").get("addressComponent").get("adcode").toString().replace("\"","");

    }

    最后得到需要的经纬度信息

    第二种(JSONObject)

    首先在pom文件配置需要的jar

    这里以2.4version为例

    net.sf.json-lib

    json-lib

    2.4

    jdk15

    其次在java类中引入需要的外部类

    import net.sf.json.JSONObject;

    import net.sf.json.JSON;

    最后处理百度地图返回的json串

    String subData = dataStr.substring(dataStr.indexOf("(") + 1, dataStr.lastIndexOf(")"));

    JSONObject jsonData = JSONObject.fromObject(subData);

    JSONObject result = (JSONObject) jsonData.get("result");

    JSONObject location = (JSONObject) result.get("location");

    if(null != location.get("lng") && null != location.get("lat")){

    String lng = location.get("lng").toString();

    String lat = location.get("lat").toString();

    doubles[0] = Double.parseDouble(lng);

    doubles[1] = Double.parseDouble(lat);

    }

    最后得到需要的经纬度信息

    Java构造和解析Json数据的两种方法详解二

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Jso ...

    Java构造和解析Json数据的两种方法详解二——org&period;json

    转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html 在www.json.org上公布了很多JAVA下的jso ...

    Java构造和解析Json数据的两种方法详解一——json-lib

    转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多JAVA下的jso ...

    spring接收json字符串的两种方式

    一.前言 前几天遇到一个问题,前端H5调用我的springboot一个接口(post方式,@RequestParameter接收参数),传入的参数接收不到.自己测试接口时使用postman的form- ...

    Java解析Json数据的两种方式

    JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量,所以使用越来越广泛,下面介绍使用JsonObject和JsonArray的两种方式解析Json数据. 使用以上两种方式解析json ...

    Java构造和解析Json数据的两种方法详解一

    一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.js ...

    Gson解析复杂JSON字符串的两种方式

    JSON解析可以使用的库: JSONObject(源自Android官方). Gson(源自Google). Jackson(第三方开源库). FastJSON(第三方开源库). 本文例子使用Goog ...

    Java - 格式化输出JSON字符串的两种方式

    目录 1 使用阿里的fastjson 1.1 项目的pom.xml依赖 1.2 Java示例代码 2 使用谷歌的gson 2.1 项目的pom.xml依赖 2.2 Java示例代码 1 使用阿里的fa ...

    Gson的解析Json数据的两种方式

    转载:https://blog.csdn.net/huplion/article/details/78984977 在线JSON字符串转Java实体类(JavaBean.Entity): https: ...

    随机推荐

    objective-c系列-动态类型和动态绑定

    /* 静态类型: 变量的类型在编译之时就被确定下来. 动态类型: 对象的类型由对象的内存里的某个结构数据来决定它是什么类型, 而不是在编译之时就被确定下来的数据类型. 对象的类型只有在运行时才知道. ...

    P1689&colon; &lbrack;Usaco2005 Open&rsqb; Muddy roads 泥泞的路

    水题,模拟就行了,别忘了L>=r的时候直接更新下一个的L然后continue type node=record l,r:longint; end; var n,l,i,ans:longint; ...

    性能测试之LoardRunner 结果分析

    性能结果分析是性能测试中的重中之重,也是难点所在,以下总结了看图的一些顺序: 1.首先可以检查Analysis模块提供的Summary Report,整个测试过程中我们所关心的各业务 2.首先关注性能 ...

    熊猫猪新系统測试之三:iOS 8&period;0&period;2

    本来本猫要等到8.1版本号出来后再做測试的,结果等来等去就是迟迟不推送更新呀!说好10月20号的iOS 8.1呢?为了一鼓作气写完,就先不等了.先拿手头的iOS 8.0.2系统做一下測试吧! 8.x系 ...

    JavaScript实现模糊推荐的input框&lpar;类似百度搜索框&rpar;

    如何用JS实现一个类似百度搜索框的输入框呢,再填充完失去焦点时,自动填充配置项,最终效果如下图: 实现很简单,但是易用性会上升一大截,需要用到的有jquery-ui的autocomplete,jque ...

    C语言之free函数及野指针

    [FROM MSDN && 百科] 原型:  void free(void *ptr); #include或#include

    PHP错误处理函数register&lowbar;shutdown&lowbar;function

    当程序在线上运行时,如果遇到BUG,想不在前端输出错误信息,同时能及时邮件通知开发者,register_shutdown_function函数就可以派上用场了. 注册一个会在脚本执行完成或者 exit ...

    通过C&num;&sol;&period;NET API使用CNTK

    (原文)CNTK v2.2.0提供C#API来建立.训练和评估CNTK模型. 本节概要介绍了CNTK C#API. 在CNTK github respository中可以找到C#训练示例. 使用C#/ ...

    Python入门-散点图绘制

    Python入门-散点图绘制  废话不说 直接上代码 import matplotlib.pyplot as plt x_values = list(range(1,1001)) y_values = ...

    展开全文
  • 当时我是通过截取字符串取的,后来觉得不太合理,今天整理出了两种处理解析json字符串的方式。 供大家参考。 顺便说一下所解析的字符串一定要是“{”开始,“}”结束, 而百度地图返回数据是这样的 ...
  • 没有废话,直接上代码 @Test public void sss(){ String ss = "/data/rop/person.json"; int one = ss.lastIndexOf("."); String Suffix = ss.substring((one+1),ss.length()); ...
  • JAVA 截取两段字符串中间的值

    千次阅读 2019-04-25 17:31:20
    Java 截取两段字符串之间的值 今天遇到一个需求才想出这样的方法,先mark一下,有一个String字符串: “资产编号:01A03A048 资产名称:办公椅 资产数量:1件;资产编号:02B01A017 资产名称:笔记本电脑 资产数量:1...
  • 截取某个字符之前或者之后的字符串String str = lly://enterVideoList?result={jsonString};1:截取?之前字符串String str1=str.substring(0, str.indexOf("?"));2:截取?之后字符串String str1=str.substring(0, str...
  • } } //获取xnl字符串里面的响应编码 private static void getXMLCode(){ String xmlstr="00999"; // RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); // HttpServletRequest ...
  • 今天在做应用时发现, javascripte默认的获取字符串长度, 把 英文 和 中文都按照1来计算   比如 var str1 = "Hello"; str1.length的值是等于5  var str2 = "中国"; str2.length的值是等于...
  • 截取某个字符之前或者之后的字符串 String str = lly://enterVideoList?result={jsonString}; 1:截取?之前字符串 String str1=str.substring(0, str.indexOf("?")); 2:截取?之后字符串 String str1=str.substring...
  • 在项目中遇到的一个小问题,在前台传入json 字符串字符串中包含所有的id ,现在要取出所有的id ,并用sql 中的in查询(ibatis 中的iterate 用来遍历),去查到所有的数据,代码如下:String s = "[{\"selected_id\...
  • 字符串类型的字符串转换成的Java的对象时,需要先将字符的格式转换成JSON格式的字符串(所以用到了json.jar包),在使用JSON格式的字符串转换成的Java的对象类型字符串原类型(XML格式): 将字符串类型的字符串转换...
  • 按字节截取字符串

    2019-04-03 15:29:00
    1 package motan.unittest.order; 2 3 import com.alibaba.fastjson.JSON; 4 import lombok.extern.slf4j.Slf4j; ... 5 import utils.Lang;... 7 import java.io.UnsupportedEncodingException; 8 imp...
  • Linux Shell 字符串截取

    2018-01-22 13:31:39
    Shell 调用java程序返回的内容较多,想要获取正确的返回内容,通常需要截取。...json串是我们需要的内容 1. # 号截取,删除{左边字符,保留右边字符。 1 echo ${va
  • 字符串类型的字符串转换成的Java的对象时,需要先将字符的格式转换成JSON格式的字符串(所以用到了json.jar包),在使用JSON格式的字符串转换成的Java的对象类型   字符串原类型(XML格式): 将字符串类型...
  • 字符串如下,这样多变的字符串截取该如何处理呢 <code class="language-html"> celGGIO1.AnIn7...... celGGIO1.AnIn8...... celGGIO1.AnIn9...... celGGIO1.AnIn10...... celGGIO1.AnIn11...... celGGIO1.AnIn...
  • 一、josn简易说明json是一种轻量级的数据交换格式,是一系列格式字符串。在数据交换中,经常会使用到,具有易读性,轻量级。很多地方会使用到,用处广泛。如下:(截取的一段json体)"matchrule": {"tag_id": "2","sex...
  • 由于项目需要通过ajax得到后台的List对象里面的值,由于没有接触过json所以前期我只能先传字符串再在js里截取子串实现。闲暇时间摸索了一下关于json接受List对象的方法,步骤如下: 1.首先下载json所以依赖的包,...
  • JSON相关

    2020-07-07 15:30:35
    1/ String、JSONObject、JSONArray的转换 ... 2/getJSONObject()与getJSONArray()的使用 ... 3/Java截取某个字符之前或之后的字符串 https://www.cnblogs.com/kkxwze/p/11224693.html ..
  • ajax和jsonjava实现List、Map直接传递 ... 由于项目需要通过ajax得到后台的List对象里面的值,由于没有接触过json所以前期我只能先传字符串再在js里截取子串实现。闲暇时间摸索了一下关于json接受List对象的
  • android JSON解析问题

    2014-03-26 22:12:09
    今天在搬砖过程中,遇到一奇葩问题,从网上得到JSON数据,完全符合格式的json数据,竟然无法解析,报错如下: org.json.JSONException: Value ?...这串字符串带了BOM值(在第一个字符,值为65279),直接截取即可 if
  • JSON入门介绍

    2009-05-25 23:00:13
    XML作为交换协议出现后,比早期C语言中按位数截取字符串的通信方式,由于可读性良好,而得到大家的广泛支持。但是随着使用的广泛,大家发现XML解析是个让人头痛的问题,JAVA语言中于是出现了jdom,dom4j等类库方便...
  • XML作为交换协议出现后,比早期C语言中按位数截取字符串的通信方式,由于可读性良好,而得到大家的广泛支持。但是随着使用的广泛,大家发现XML解析是个让人头痛的问题,JAVA语言中于是出现了jdom,dom4j等类库方便...

空空如也

空空如也

1 2 3
收藏数 43
精华内容 17
关键字:

java截取json字符串

java 订阅