精华内容
下载资源
问答
  • 例如想截取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>  



    展开全文
  • java提取json字符串中的值

    万次阅读 2019-01-07 15:11:38
    Java开发当中经常需要Json格式的数据,比如从{"account_name":"zhangsan2018","account_openid":"fa3c859554048750cc258f48870b858f","addr_right":1,"addr...

    Java开发当中经常需要Json格式的数据,比如从{"account_name":"zhangsan2018","account_openid":"fa3c859554048750cc258f48870b858f","addr_right":1,"addr_visible":1,"alias_list":[],"create_time":1545786082000,"domain":"abc.cn"}这个Json中提取create_time的值。

    操作步骤:

    在eclipse中导入下图这六个jar包,资源在此:https://download.csdn.net/download/zzy730913/10901338

    代码如下:

    package testmail;
    
    import net.sf.json.JSONObject;
    
    public class jsonconversion {
    	public static void main(String[] args){
    		String str = "{\"account_name\":\"zhangsan2018\",\"account_openid\":\"fa3c859554048750cc258f48870b858f\",\"addr_right\":1,\"addr_visible\":1,\"alias_list\":[],\"create_time\":1545786082000,\"domain\":\"abc.com\"}";
      	    JSONObject jsonObject = JSONObject.fromObject(str);
      	    System.out.println(jsonObject.get("create_time"));      
            }
    }

    结果如下:

    1545786082000

    遇见的坑:

    1.lib中只导入json-lib程序会报错,还需要其他5个jar包

    2.JSONObject对应两种架包的下载方式,

    (1)com.alibaba.fastjson.JSONObject(依赖1个架包fastjson-1.2.28.jar)

    (2)net.sf.json.JSONObject(依赖6个架包,如本例所示)

    我使用的是第二种,因为第一种参考其他资料说不支持fromObject,我自己没试过,大家有兴趣可以自己试试

    展开全文
  • 时间:2019.12.17.22.30 在使用JSON字符串时,如果知道键,那么就很容易获取值,如果只有JSON 字符串,那么就需要采用以下方法获取键与值

    时间:2019.12.17.22.30

    现在有JSONObject字符串,采用以下java代码解析出key&&value

            Set<String> keys =  jsonObject.keySet();
            for(String key : keys){
    			String jsonKey = key;
    			String jsonValue = jsonObject.get(key).toString;
            }
    
    展开全文
  • 最近做项目过程中,需要从一段复杂的json字符串中获取想要的数据,折腾几天,感谢网上很多大牛分享的帖子,现在我就具体情况进行讲解。我目前碰到如下所示的json格式字符串:开头有totalCount、pageNo、pageSize,...

    最近做项目过程中,需要从一段复杂的json字符串中获取想要的数据,折腾几天,感谢网上很多大牛分享的帖子,现在我就具体情况进行讲解。

    我目前碰到如下所示的json格式字符串:


    开头有totalCount、pageNo、pageSize,然后接下来的格式是类似的。然后我想要获取到后面deviceId、gatewayId、appId、serviceId、data。

    现在直接上代码:


    最后的运行结果:


    展开全文
  • java 获取json字符串中key对应的值

    万次阅读 2019-03-08 18:22:12
    我们来解析下面这个json字符串 Java代码 import com.google.gson.JsonObject; import com.google.gson.JsonParser; public class Test { public static void main(String[] args) { String resultStr =...
  • 今天在做项目的时候,需要把json转换为jsonObject,由于json格式不是固定的,还需要先把所有的键取出来,然后再遍历取值。 需要用到GSON,maven依赖为: <dependency> <groupId>...
  • 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...
  • 问题:java后端访问另外一个后端的接口后得到一个json字符串,如何提取出这个json字符串中的value 值,第一个value值“ok”忽略,其余的三个value值分别代表 湿度,继电器状态,温度。 {"errno":0,"data":{"count":4...
  • 这是简单例子 { "code": 0, "success": true, "data": { "result": 0, "likes": 1, "inlikes": true, "n_dolikes": 0, "show_10_likes_gift": false, "toast": "" } } 这是简单例子的java代码 public static void ...
  • 之前有人问了一个问题就是关于js获取json数据value值的几种方式,所以今天把... //js获取json字符串value的第一种方式 console.log(obj.id); //js获取json字符串value的第二种方式 console.log(obj['id']); Obje
  • 实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织...
  • java截取JSON报文的方法

    千次阅读 2017-09-28 17:06:49
    截取errorMsg报文当中的trace字段
  • 没有废话,直接上代码 @Test public void sss(){ String ss = "/data/rop/person.json"; int one = ss.lastIndexOf("."); String Suffix = ss.substring((one+1),ss.length()); ...
  • java中可以导入有关json的jar包,但是此jar包又得依赖其他的jar包 ,所以需要导入的包如下: 可在这里下载相关jar包,CSDN下载啥都要钱 讨厌死了 还是这个链接好---云盘 ...errmsg=Auth%20Login%20Sucess&...
  • java提取json格式字符串

    千次阅读 2016-01-29 13:30:11
    java提取json字符串
  • Java取出json字符串中某一key的值

    万次阅读 2017-05-16 14:32:54
    import ... public class JsonTest { public static void main(String[] args) { // json串(以自己的为准) String str = "{"id":"75","shoppingCartItemList":[{"id":"407","num":"10"}]
  • Java 截取指定长度的字符串

    千次阅读 2019-10-04 23:12:03
    * 截取指定长度的字符串 * * @param str 原字符串 * @param len 长度 * @return 如果str为null,则返回null;如果str长度小于len,则返回str;如果str的长度大于len,则返回截取后的字符串 */ public static ...
  • 一、引入阿里巴巴的json依赖包&lt;dependency&gt; &lt;groupId&gt;com.alibaba&lt;/groupId&gt; &lt;artifactId&gt;fastjson&lt;/artifactId&gt; &lt;version&...
  • <groupId>net.sf.json-lib</groupId> <artifactId>json-lib <version>2.4 <classifier>jdk15 </dependency>
  • JAVA 截取两段字符串中间的值

    千次阅读 2019-04-25 17:31:20
    Java 截取两段字符串之间的值 今天遇到一个需求才想出这样的方法,先mark一下,有一个String字符串: “资产编号:01A03A048 资产名称:办公椅 资产数量:1件;资产编号:02B01A017 资产名称:笔记本电脑 资产数量:1...
  • java 截取json

    2014-12-04 23:33:00
    A: public static void main(String[] args) { // TODO Auto-... String json = "{'response':{'data':[{'address':'南京市游乐园','province':'江苏','district':'玄武区','city':'南京'}]},'status':'o...
  • JsonNode details = new ObjectMapper().readTree(ido.getItems());  for (JsonNode obj : details) {  BigDecimal balanceQty = new BigDecimal(obj.get("balanceQty").asText());  
  • 一、引号的问题字符串可以用单引号,也...双引号:•双引号里可以有变量•双引号里可以出现转义字符二、解析Json字符串java程序返回的Json字符串,如果直接echo输出。内容里包含双引号的,类似于:{"name":"tang","ag
  • 实现将在服务器获取客户端传来的JSON字符串,并把JSON字符串转成JSON对象并取得其中属性值 方式1:解析JSON字符串使用json.jar来实现,需要新增jar如下 首先在web中配置spring 编码过滤器,防止乱码 &lt;...
  • map 字符串转化成 json字符串

    千次阅读 2019-10-30 16:02:24
    最近写代码遇到一个事每次把日志的字符串拿来用,都需要手工变成json,自己加引号,很烦,自己整了个方法,本来准备自己写,但是针对简单字符串可以,复杂的没搞成。 贴上代码哈 pom 文件 <dependency> &...
  • 题目:将以下字符串保存为json字符串 a="access_token=987b304ae3f44d50f98267f36a9281ed14b39056a11acf4016b51baea37f5d4a&expires=-1965257896"; 思路: 1:将参数以&,=分割开来,分割开来保存 2:...
  • 项目过程中经常打日志:LOG.error("[failure]...在一些日志处理过程中我们打印的日志可能是这个样的 XXX业务处理异常:{json字符串} 我们怎么获取到只包含json的字符串呢? 下面提供Java和JS两种方式: <wi...
  • JSON字符串中含特殊字符被后端拦截 问题: json中含有双引号、等特殊符号,后端无法接收到。 解决方案: 在属性文件中添加xss,不拦截指定接口 xss: skip-url: - 被拦截的接口(controller层接口) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,189
精华内容 4,075
关键字:

java截取json字符串

java 订阅