Java如何将String转换成json对象或json数组

 更新时间:2022年02月07日 12:04:01   作者:我是王小贱  
这篇文章主要介绍了Java如何将String转换成json对象或json数组,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

将String转换成json对象或json数组

这里的SmartProejctEquipmentMap 是我自定的一个实体类,可以自己定义转换。

注意:json字符串中键的名称要和实体类一致。

@Test
    public void TestJsonObject() {
        String datajson = "" +
                "[" +
                "   {" +
                "       'projectId':'00a8de32-422c-4b8d-b945-d9cda7f30a31'," +
                "       'projectName':'年产片式元器件7.2亿个、高分子固体电容器3.96亿个等项目(标准厂房、连廊A,甲类仓库,办公楼,宿舍,值班门卫,垃圾房)'," +
                "       'iconType':'yc'," +
                "       'eqpType':'yc'," +
                "       'sn':'SZWJJJ8MQX20200403134027'," +
                "       'name':'测试第三方01'," +
                "       'wkt':'测试第三方01'," +
                "       'sn':'POINT(120.698299 31.272362)'" +
                "   }," +
                "   {" +
                "       'projectId':'00a8de32-422c-4b8d-b945-d9cda7f30a31'," +
                "       'projectName':'测试项目编号名称'," +
                "       'iconType':'yc'," +
                "       'eqpType':'yc'," +
                "       'sn':'FDASDFAFDAFYF89AS6F897DD'," +
                "       'name':'扬尘设备001'," +
                "       'wkt':'扬尘设备001'," +
                "       'sn':'POINT(120.698299 31.272362)'" +
                "   }" +
                "]";
 
        JSONArray jsonArray = JSONArray.parseArray(datajson);
        for(int i=0; i<jsonArray.size(); i++) {
            JSONObject object = jsonArray.getJSONObject(i);
            SmartProejctEquipmentMap myclass = JSONObject.parseObject(object.toJSONString() , SmartProejctEquipmentMap.class);// 将string类型直接封装成对象
            System.out.println(myclass.toString());
        }

字符串转json数组的解决

前提:当需要把一串字符串转成一个json 数组 ,并遍历其中的内容时。

第一步:

首先导入 net.sf.json.JSONArray和net.sf.json.JSONObject 两个jar 包

Java:

String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]" ;  // 一个未转化的字符串
JSONArray json = JSONArray.fromObject(str ); // 首先把字符串转成 JSONArray  对象
if(json.size()>0){
  for(int i=0;i<json.size();i++){
    JSONObject job = json.getJSONObject(i);  // 遍历 jsonarray 数组,把每一个对象转成 json 对象
    System.out.println(job.get("name")+"=") ;  // 得到 每个对象中的属性值
  }
}

Js:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
<HTML>  
<HEAD>  
<TITLE> New Document </TITLE>    
<SCRIPT LANGUAGE="JavaScript">   
   var t="{'firstName': 'cyra', 'lastName': 'richardson', 'address': { 'streetAddress': '1 Microsoft way', 'city': 'Redmond', 'state': 'WA', 'postalCode': 98052 },'phoneNumbers': [ '425-777-7777','206-777-7777' ] }";  
    var jsonobj=eval('('+t+')');  
    alert(jsonobj.firstName);  
    alert(jsonobj.lastName); 
  
var t2="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] ";  
var myobj=eval(t2);  
for(var i=0;i<myobj.length;i++){  
   alert(myobj[i].name);  
   alert(myobj[i].age);  
}  
  
var t3="[['<a href=# οnclick=openLink(14113295100,社旗县国税局桥头税务所,14113295100,d6d223892dc94f5bb501d4408a68333d,swjg_dm);>14113295100</a>','社旗县国税局桥头税务所','社旗县城郊乡长江路西段']]";  
//通过eval() 函数可以将JSON字符串转化为对象  
var obj = eval(t3);  
for(var i=0;i<obj.length;i++){  
   for(var j=0;j<obj[i].length;j++){  
alert(obj[i][j]);  
   }   
}  
  
/*  
//stringifier 函数的作用跟 parse 相反, 用来将一个js对象转换为 JSON 文本。  
var jsonText = JSON.stringify(obj);  
alert(jsonText);  
  
//如果基于安全的考虑的话,最好是使用一个 JSON 解析器。 一个 JSON 解析器将只接受 JSON 文本。所以是更安全的。  
var myObject = JSON.parse(myJSONtext, filter);    
//可选的 filter 参数将遍历每一个value key 值对, 并进行相关的处理。如:  
//如  
myData = JSON.parse(text, function (key, value) {        
return key.indexOf('date') >= 0 ? new Date(value) : value;    });  
  
//stringifier 函数的作用跟 parse 相反, 用来将一个js对象转换为 JSON 文本。  
var myJSONText = JSON.stringifier(myObject);  
*/  
</SCRIPT>  
</HEAD>  
<BODY>  
</BODY>  
</HTML>  

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java JDK1.7对字符串的BASE64编码解码方法

    Java JDK1.7对字符串的BASE64编码解码方法

    今天小编就为大家分享一篇Java JDK1.7对字符串的BASE64编码解码方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • SpringBoot配置动态数据源的实战详解

    SpringBoot配置动态数据源的实战详解

    Spring对数据源的管理类似于策略模式,不懂策略模式也没关系,其实就是有一个全局的键值对,类型是Map<String, DataSource>,当JDBC操作数据库之时,会根据不同的key值选择不同的数据源,本文介绍了SpringBoot配置动态数据源的方法,需要的朋友可以参考下
    2024-08-08
  • 一文搞懂Java的ThreadPoolExecutor原理

    一文搞懂Java的ThreadPoolExecutor原理

    都说经典的就是好的,这句话放在Java的ThreadPoolExecutor上那是一点都没错,像现在数据库连接的池化实现,或者像Tomcat这种WEB服务器的线程管理,处处都有着ThreadPoolExecutor的影子,本篇文章将结合源码实现,对ThreadPoolExecutor的原理进行一个深入学习
    2023-06-06
  • Mybatis-Plus和Mybatis的区别详解

    Mybatis-Plus和Mybatis的区别详解

    这篇文章主要介绍了Mybatis-Plus和Mybatis的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Spring基于注解配置AOP详解

    Spring基于注解配置AOP详解

    这篇文章主要介绍了Spring基于注解配置AOP详解,Spring 的 AOP 功能是基于 AspectJ 实现的,支持使用注解声明式定义 AOP 切面,Spring 基于注解配置 AOP 需要启用 AspectJ 自动代理功能,需要的朋友可以参考下
    2023-09-09
  • Java如何输出windows中的全部汉字

    Java如何输出windows中的全部汉字

    这篇文章主要介绍了Java如何输出windows中的全部汉字问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Java Web开发中的分页与参数校验举例详解

    Java Web开发中的分页与参数校验举例详解

    这篇文章主要介绍了JavaWeb开发中的分页设计和参数校验,分页设计通过分页查询参数优化查询性能,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-02-02
  • Spring boot如何通过@Scheduled实现定时任务及多线程配置

    Spring boot如何通过@Scheduled实现定时任务及多线程配置

    这篇文章主要介绍了Spring boot如何通过@Scheduled实现定时任务及多线程配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Springboot使用redisson实现分布式锁的代码示例

    Springboot使用redisson实现分布式锁的代码示例

    在实际项目中,某些场景下可能需要使用到分布式锁功能,那么实现分布式锁有多种方式,常见的如mysql分布式锁、zookeeper分布式锁、redis分布式锁,本文介绍springboot如何使用redisson实现分布式锁,需要的朋友可以参考下
    2023-06-06
  • Spring Boot分页方法定义示例

    Spring Boot分页方法定义示例

    这篇文章主要为大家介绍了Spring Boot 分页方法定义,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09

最新评论