Json String to Java Bean

2023-05-16

//{"version":1,"consentId":"b618924f-8a6c-42bc-8553-99e3a8a0fec4","domain":"cd:site15294072534021.com","remoteAddr":"222.78.43.84","rmuid":"99e62b2b-5659-43aa-a15a-89bdd82e0cb4","sid":112,"mid":111,"impressionGuid":"b7275d47-724c-4d4e-bb6e-f819859e143b","impliedConsentGranted":false,"grantedDate":"2056-04-17T13:24:28Z","sourceIds":{"aff_sid":["112"],"attr_sid":["2809"],"np_sid":["1815"]},"gdpr":{"isGlobal":false,"isScope":true,"purposes":[1,4,5],"vendors":[]}}

import java.io.BufferedReader;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;


import com.linkshare.Pojo.ConsentLog;


import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;




public class JsonToObjectUtil {


public static void main(String[] args) throws IOException {
String projectPath = System.getProperty("user.dir");
String filePath = projectPath + "/json_example.txt";
System.out.println("filePath=" + filePath);


BufferedReader br = null;
StringBuilder sb = new StringBuilder();
try {
File file = new File(filePath);
InputStreamReader reader = new InputStreamReader(new FileInputStream(file));
br = new BufferedReader(reader);
String line = null;
while ((line = br.readLine()) != null) {
System.out.println("line=" + line);
sb.append(line);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (br != null)
br.close();
}


String log = sb.toString();
//String log = "{\"chinese\":\"88\",\"math\":\"78\",\"computer\":\"99\"}";


System.out.println("consentLog: " + log);


String consentId = getImpressionIdFromLogJson(log);


System.out.println("main>>>end>>>consentId>>>" + consentId);


}


public static String getImpressionIdFromLogJson(String jsonStr) {
System.out.println("getImpressionIdFromLogJson>>>begin");
String consent_id = "No found consentId";


try {
System.out.println("getImpressionIdFromLogJson>>>0");
JsonConfig config = new JsonConfig();    
        config.setIgnoreDefaultExcludes(false);       
        config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);     
        config.setExcludes(new String[]{    
          "sourceIds"   
        }); 
JSONObject obj = JSONObject.fromObject(jsonStr, config);
System.out.println("getImpressionIdFromLogJson>>>1>>>" + obj.toString());


ConsentLog consentLog = (ConsentLog) JSONObject.toBean(obj, ConsentLog.class);
System.out.println("getImpressionIdFromLogJson>>>2");


consent_id = consentLog.getConsentId();
String impression_id = consentLog.getImpressionGuid();
List<String> purposes = consentLog.getGdpr().getPurposes();
String is_scope = consentLog.getGdpr().getIsScope();
String is_global = consentLog.getGdpr().getIsGlobal();

System.out.println("getImpressionIdFromLogJson>>>end>>>impression_id>>>" + impression_id);
System.out.println("getImpressionIdFromLogJson>>>end>>>purposes>>>" + purposes.toString());
System.out.println("getImpressionIdFromLogJson>>>end>>>is_scope>>>" + is_scope);
System.out.println("getImpressionIdFromLogJson>>>end>>>is_global>>>" + is_global);

System.out.println("getImpressionIdFromLogJson>>>3");


System.out.println("getImpressionIdFromLogJson>>>ConsentLog>>>" + consentLog.toString());


System.out.println("getImpressionIdFromLogJson>>>end>>>consent_id>>>" + consent_id);
} catch (Exception e) {
System.out.println("getImpressionIdFromLogJson>>>" + e.toString());
}
return consent_id;


}

}


JAVA BEAN:


package com.linkshare.Pojo;


import org.codehaus.jackson.annotate.JsonIgnoreProperties;


//@JsonIgnoreProperties(ignoreUnknown = true)
public class ConsentLog {


// ConsentLogger -
// *--*{"version":1,"consentId":"b618924f-8a6c-42bc-8553-99e3a8a0fec4","domain":"cd:site15290675573541.com","remoteAddr":"222.222.222.222","rmuid":"23063423-5922-4d89-915a-b2e9c6690583","sid":112,"mid":111,"impressionGuid":"4cabf389-02b8-4c2a-836f-c8842cd2d94b","impliedConsentGranted":false,"grantedDate":"2056-04-17T13:24:28Z","sourceIds":{"aff_sid":["112"],"attr_sid":["2809"],"np_sid":["1815"]},"gdpr":{"isGlobal":false,"isScope":false,"purposes":[2,4,5],"vendors":[]}}


private String consentId;

private String domain;
private String remoteAddr;
private String impressionGuid;
private Gdpr gdpr;


public String getConsentId() {
return consentId;
}
public void setConsentId(String consentId) {
this.consentId = consentId;
}
public String getDomain() {
return domain;
}
public void setDomain(String domain) {
this.domain = domain;
}
public String getRemoteAddr() {
return remoteAddr;
}
public void setRemoteAddr(String remoteAddr) {
this.remoteAddr = remoteAddr;
}
public String getImpressionGuid() {
return impressionGuid;
}
public void setImpressionGuid(String impressionGuid) {
this.impressionGuid = impressionGuid;
}
public Gdpr getGdpr() {
return gdpr;
}
public void setGdpr(Gdpr gdpr) {
this.gdpr = gdpr;
}


}

package com.linkshare.Pojo;


import java.util.List;


public class Gdpr {


private String isGlobal;
private String isScope;
private List<String> purposes;
private List<String> vendors;


public List<String> getPurposes() {
return purposes;
}
public void setPurposes(List<String> purposes) {
this.purposes = purposes;
}
public List<String> getVendors() {
return vendors;
}
public void setVendors(List<String> vendors) {
this.vendors = vendors;
}
public String getIsGlobal() {
return isGlobal;
}
public void setIsGlobal(String isGlobal) {
this.isGlobal = isGlobal;
}
public String getIsScope() {
return isScope;
}
public void setIsScope(String isScope) {
this.isScope = isScope;
}
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Json String to Java Bean 的相关文章

  • 无法使用maven编译java项目

    我正在尝试在 java 16 0 1 上使用 maven 构建 IntelliJ 项目 但它无法编译我的项目 尽管 IntelliJ 能够成功完成 在此之前 我使用maven编译了一个java 15项目 但我决定将所有内容更新到16 0 1
  • 为什么 java 编译器不报告 Intellij 中多播表达式的未经检查的强制转换警告?

    为什么下面的代码没有报告 Intellij IDEA 的未经检查的警告jdk 1 8 0 121自从Supplier
  • 检查 PHP 中的字符串长度

    我有一个长度为 141 个字符的字符串 使用下面的代码我有一个if如果字符串大于或小于 140 则语句返回一条消息 libxml use internal errors TRUE dom new DOMDocument dom gt loa
  • 无法将数据加载到 mvc 4 中的 jTable 中

    好的 我第一次尝试 jTable 我可以加载表 但这对我没有什么好处 因为它不会加载我的任何数据 当我调试程序时 我想要的表中的所有行都存储在我的列表中 因此我很困惑为什么当我运行应用程序时会弹出一个对话框 显示 与服务器通信时发生错误 H
  • Condition 接口中的 signalAll 与对象中的 notificationAll

    1 昨天我才问过这个问题条件与等待通知机制 https stackoverflow com questions 10395571 condition vs wait notify mechanism 2 我想编辑相同的内容并在我的问题中添加
  • 无法在 Spring Boot 测试中模拟 persistenceContext

    我正在使用带有 Mockito 框架的 spring boot 测试来测试我的应用程序 存储库类 EntityManager 之一作为参考 我的班级如下所示 Repository Transactional Slf4j public cla
  • ruby 字符串到哈希值的转换

    我有一个这样的字符串 str uu p xx m yy n zz m 我想知道如何将给定的字符串转换为哈希值 即我的实际要求是 有多少个值 符号之前 有m n和p 我不需要计数 我需要一个精确的值 这样输出效果会更好 m gt xx zz
  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • RSA OAEP、Golang 加密、Java 解密 -BadPaddingException:解密错误

    我正在尝试解密使用 RSA OAEP 在 Golang 中加密的字符串 但出现 BadPaddingException 解密错误 很难弄清楚我错过了什么 这是Golang加密方法 func encryptString rootPEM io
  • 如何将 Jfreechart(饼图)添加到 netbeans 的面板中

    我正在使用 netbeans gui 编辑器 并且正在尝试添加一个本身位于内部框架中的 Jfreechart 并且这个内部框架我想将其添加到面板中 正如您在此图中看到的那样 抱歉 我无法直接发布图像 因为我新手 http www flick
  • 计算日期之间的天数差异

    在我的代码中 日期之间的差异是错误的 因为它应该是 38 天而不是 8 天 我该如何修复 package random04diferencadata import java text ParseException import java t
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • 解析输入,除了 System.in.read() 之外不使用任何东西

    我很难找到具体的细节System in read 有效 也许有人可以帮助我 似乎扫描仪会更好 但我不允许使用它 我被分配了一个任务 我应该以 Boolean Operator Boolean 的形式读取控制台用户输入 例如T F 或 T T
  • 解决错误javax.mail.AuthenticationFailedException

    我不熟悉java中发送邮件的这个功能 我在发送电子邮件重置密码时遇到错误 希望你能给我一个解决方案 下面是我的代码 public synchronized static boolean sendMailAdvance String emai
  • 如何在Java中正确删除数组[重复]

    这个问题在这里已经有答案了 我刚接触 Java 4 天 从我搜索过的教程来看 讲师们花费了大量精力来解释如何分配二维数组 例如 如下所示 Foo fooArray new Foo 2 3 但我还没有找到任何解释如何删除它们的信息 从内存的情
  • Java:拆箱整数时出现空指针异常?

    此代码导致空指针异常 我不知道为什么 private void setSiblings PhylogenyTree node Color color throws InvalidCellNumberException PhylogenyTr
  • Java的-XX:+UseMembar参数是什么

    我在各种地方 论坛等 看到这个参数 并且常见的答案是它有助于高并发服务器 尽管如此 我还是找不到 sun 的官方文档来解释它的作用 另外 它是Java 6中添加的还是Java 5中存在的 顺便说一句 许多热点虚拟机参数的好地方是这一页 ht
  • Java:多线程内的 XA 事务传播

    我如何使用事务管理器 例如Bitronix http docs codehaus org display BTM Home JBoss TS http www jboss org jbosstm or Atomikos http www a
  • Android - 9 补丁

    我正在尝试使用 9 块图片创建一个新的微调器背景 我尝试了很多方法来获得完美的图像 但都失败了 s Here is my 9 patch 当我用Draw 9 patch模拟时 内容看起来不错 但是带有箭头的部分没有显示 或者当它显示时 这部
  • Hibernate 和可序列化实体

    有谁知道是否有一个框架能够从实体类中剥离 Hibernate 集合以使它们可序列化 我查看了 BeanLib 但它似乎只进行实体的深层复制 而不允许我为实体类中的集合类型指定实现映射 BeanLib 目前不适用于 Hibernate 3 5

随机推荐

  • Mysql占用CPU过高排查过程及可能优化方案

    1 查看生产DB服务器top列表 xff0c 执行 top 命令 2 使用root用户登录mysql 执行 show full processlist 查看慢查询 xff0c 反复执行 xff0c 如果发现一直有select 查询语句存在
  • SQLServer2019安装(Windows)

    目录 一 SQLServer2019下载 1 官网下载地址 2 下载安装包 2 1 选择Developer版本 立即下载 2 2 选择下载位置 3 安装 3 1 打开 SQLServer2019 x64 CHS Dev iso
  • 香橙派4在armbian上应用自启动设置

    编辑了一个qt界面 需要设置开机启动 xff0c 费了九牛二虎之力 xff0c 终于搞定了 设置开机显示命令行 开机不显示图形界面 xff0c 直接显示命令行的操作有两种方法 xff1a 多用户方法 sudo systemctl set s
  • vscode 中git解决冲突,合并代码的两种方法

    一 报错信息 有文件冲突的话 xff0c 会报错 xff1a git merge pre span class token operator span master span class token comment 合并 pre maste
  • 用Python爬取淘宝4403条大裤衩数据进行分析,终于找到可以入手的那一条

    炎炎夏日 xff0c 长裤已难以满足广大男生的需求 xff0c 为了在搬砖和摆摊的过程中增添一丝舒适感 xff0c 他们开始寻找一种神奇的存在 大裤衩 J哥在种菜的这些日子里也日益感受到大裤衩的重要性 xff0c 于是 xff0c 默默打开
  • 用户标签有哪些类型,如何进行科学分类?

    标签的分类 xff0c 是理解用户标签 理解用户画像的基础 优秀的标签分类 xff0c 将使得标签画像系统易于用户的使用 本篇文章和大家简单介绍一下标签数据的分类 按照不同的分类方法 xff0c 标签的分类也自然不同 本文主要介绍几种最常规
  • Python字符串查找函数find

    Python字符串查找函数find 比较简单 xff0c 直接上代码 总结下规则 xff0c 结果数字说明 按字符串索引下标查询 xff0c 索引从0开始 xff0c 空格会占位并且有下标结果 1 xff0c 代表没有查找到英文区分大小写
  • 闲着看看jquery.ajax源码

    框架的作用就是简化我们做的事情 xff0c 却又不失灵活性 jquery是js框架中的中流砥柱 xff0c 灵活并且强大 jquery中对ajax的封装很完美 xff0c 且不说底层的ajax函数的强大 xff0c 但是其上层的get xf
  • java 转json 报错处理机制 案例 .

    JSON lib这个Java类包用于把bean map和XML转换成JSON并能够把JSON转回成bean和DynaBean http kingpingping iteye com blog 1157771 报错处理机制 commons b
  • 关于jquery对象的remove参数中出现伪位置类选择器,出现非预期结果的研究

    记得前几天有人在论坛发帖问了一个关于jquery删除节点的问题 原帖是这样的 xff08 原帖的地址是 xff1a 原帖 xff09 lt ul gt lt li gt 1 lt li gt lt li title 61 34 a 34 g
  • linux源码阅读利器-GNU GLOBAL Source Code Tag System

    学习浏览linux源码 xff0c 如果自己用自带的文本编辑器就太麻烦了 xff0c 但是如果安装强大的lxr那就太麻烦了 xff08 对于非debian用户来说 xff09 xff0c 找了很久找到了一个用起来很不错的源码浏览工具 xff
  • android 4.0.1源码编译,学习错误解决

    主机是fedora 14 linux内核2 6 35 6 swapon交换分区1 5G make version 3 81 官方指定的make版本 xff09 jdk 1 6 磁盘预留空间大概需要大于13G 具体的编译步骤可参考 Fedor
  • android webApp 调试问题解决

    前不久做了个webapp xff0c 在pc上chrome调试都是可以的 但是手机上显示却有点问题 xff0c 所以一直是想在手机浏览器上调试 xff0c 但是一直没有相关支持 xff0c 后来google终于出了chrome beta版
  • android系统源代码分析 书评

    其实接触android应用开发差不多两年了 xff0c 但是实际上并没与多少拿得出手的作品 因为在很长一段时间里我都在问自己android是什么 xff0c 内部怎么运行的 xff0c 为什么我的java代码就可以在linux上运行 xff
  • Fedora18博通430g电信无线拨号上网

    回家折腾了有两三天 xff0c 想让fedora18 也能蹭上网 首当其冲的问题就是fedora 没有为无线网卡安装驱动 xff0c 只能自己慢慢找驱动 费了好久找到上传了驱动下载 xff0c 满心欢喜按照README 编译 xff0c 结
  • VR技术的发展趋势,未来有哪些展望?

    虚拟现实技术Virtual Reality xff0c 缩写为VR xff0c 是一项全新的实用技术 虚拟现实技术包含计算机 电子信息 仿真技术于一体 xff0c 其基本实现方式是计算机模拟虚拟环境从而给人以环境沉浸感 目前来看 xff0c
  • APM2.8 Rover 自动巡航车设计(超声波和红外测距仪的安装和设置)

    xff08 转载 xff09 4 1 ROVER自动巡航车自主壁障的设置 APM2 8的飞控驾驶仪的传感器接入支持超声波 xff0c 电压传感器 xff0c 电流传感器 xff0c 光流传感器 xff0c 红外传感器 其中超声波和红外传感器
  • 学习笔记(一)-古月ROS机器视觉开发入门 -摄像头参数标定

    我们做图像处理为的就是要得到图像的数据 xff0c 在得到这些数据之后怎么对这些数据进行处理 xff0c 这才是我们主要关心的问题 但是 xff0c 在此之前 xff0c 我们还需要做一个非常主要的步骤 对摄像头的参数进行参数标定 安装标定
  • 卸载ROS的方法

    1 卸载全部ros span class token variable sudo span span class token variable apt get span span class token variable remove sp
  • Json String to Java Bean

    34 version 34 1 34 consentId 34 34 b618924f 8a6c 42bc 8553 99e3a8a0fec4 34 34 domain 34 34 cd site15294072534021 com 34