json 转换map 等

本文介绍如何使用JavaScript将表单输入转化为JSON对象并发送到后台,以及如何在Java端将接收到的JSON字符串解析为Map对象或字符串形式。

引用json.js(将json格式转换成字符串)

2.

Javascript代码   收藏代码
  1. var name = document.getElementById("name").value;  
  2.   var retries = document.getElementById("retries").value;  
  3.   var testname = document.getElementById("testname").value;  
  4.   var testretries = document.getElementById("testretries").value;  
  5.   //定义一个JSON对象  
  6.   var paramObject= {"name":name,"retries":retries,"testname":testname,"testretries":testretries};  
  7.   //将json对象转换成字符串传递到后台  
  8.   var paramMap=JSON.stringify(paramObject);  

3.

java中直接遍历成Map:

Java代码   收藏代码
  1. /** 
  2.     * 将json格式的字符串解析成Map对象 <li> 
  3.     * json格式:{"name":"admin","retries":"3fff","testname" 
  4.     * :"ddd","testretries":"fffffffff"} 
  5.     */  
  6.    private static HashMap<String, String> toHashMap(Object object)  
  7.    {  
  8.        HashMap<String, String> data = new HashMap<String, String>();  
  9.        // 将json字符串转换成jsonObject  
  10.        JSONObject jsonObject = JSONObject.fromObject(object);  
  11.        Iterator it = jsonObject.keys();  
  12.        // 遍历jsonObject数据,添加到Map对象  
  13.        while (it.hasNext())  
  14.        {  
  15.            String key = String.valueOf(it.next());  
  16.            String value = (String) jsonObject.get(key);  
  17.            data.put(key, value);  
  18.        }  
  19.        return data;  
  20.    }  


或者转换成字符串对象:

获取国际化key和value

 

Java代码   收藏代码
  1. /** 
  2.    * 将json格式的字符串解析成String字符串平装<li> 
  3.    * json格式:String objString = "{\"aa\":1,\"cc\":2,\"bb\":3}";   
  4.    */  
  5.   @SuppressWarnings( {"unchecked"})  
  6.   private String toAnnotationStr(Object object)  
  7.   {  
  8.       // HashMap<String, String> data = new HashMap<String, String>();  
  9.       // 将json字符串转换成jsonObject  
  10.       if (object != null && !object.equals(""))  
  11.       {  
  12.           JSONObject jsonObject = JSONObject.fromObject(object);  
  13.           Iterator it = jsonObject.keys();  
  14.           StringBuilder strBuilder = new StringBuilder();  
  15.           // 遍历jsonObject数据,添加到Map对象  
  16.           while (it.hasNext())  
  17.           {  
  18.               String key = String.valueOf(it.next());  
  19.               String value = (String) jsonObject.get(key);  
  20.               //TODO  
  21.               strBuilder.append(this.getText(key))  
  22.                       .append(this.getText("lego.lab.com.colon"))  
  23.                       .append(value + " ");  
  24.                 
  25.           }  
  26.           return strBuilder.toString();  
  27.       }  
  28.       else  
  29.       {  
  30.           return "";  
  31.       }  
  32.   }  
在处理 JSON 字符串转换为 `Map` 类型时,使用 Fastjson 提供的 `FastjsonTypeHandler` 是一种常见且有效的方式。通过该方式可以将数据库中的 JSON 字符串字段映射到 Java 中的 `Map` 结构,便于后续的数据操作。 以下是一个完整的示例,展示如何定义一个实体类,并使用 `@TableField` 注解指定 `FastjsonTypeHandler` 来处理 JSON 字符串到 `Map` 的转换: ```java import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; import java.util.Map; @TableName("user_table") public class User { private Long id; private String name; @TableField(typeHandler = FastjsonTypeHandler.class) private Map<String, Object> additionalInfo; // Getters and Setters public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Map<String, Object> getAdditionalInfo() { return additionalInfo; } public void setAdditionalInfo(Map<String, Object> additionalInfo) { this.additionalInfo = additionalInfo; } } ``` 在这个例子中,`additionalInfo` 字段是一个 JSON 字符串,存储在数据库中,通过 `FastjsonTypeHandler` 被自动解析为 `Map<String, Object>` 类型。这种方式简化了从数据库读取 JSON 数据并将其转换为 Java 对象的过程。 此外,如果你希望自定义反序列化行为,例如指定特定的 `Feature` 或者 `ParserConfig`,可以通过继承 `FastjsonTypeHandler` 并重写相关方法来实现更细粒度的控制[^1]。 ### 示例:手动解析 JSON 字符串为 Map 如果不想依赖 MyBatis Plus 的注解机制,也可以手动使用 Fastjson 进行转换: ```java import com.alibaba.fastjson.JSON; import java.util.Map; public class JsonToMapExample { public static void main(String[] args) { String jsonString = "{\"name\":\"John\", \"age\":30}"; // 将 JSON 字符串转换Map Map<String, Object> map = JSON.parseObject(jsonString, Map.class); System.out.println(map); // 输出: {name=John, age=30.0} } } ``` 上述代码展示了如何直接使用 Fastjson 的 `JSON.parseObject` 方法将 JSON 字符串转换为 `Map<String, Object>` 类型。这种方法适用于需要灵活控制解析过程的场景。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值