map和json互转

/**
	 * 转换MP自己定义的JSONArray对象为List<Map>对象
	 * @param obj
	 * @return
	 */
	public static List<Map<String,String>> jsonArrToList(JSONArray arr){
		String key = null;
		String val = null;
		Iterator<String> it = null;
		JSONObject obj = null;
		Map<String,String> map = null;
		List<Map<String, String>> list = new ArrayList<Map<String,String>>();
		
		try {
			for (int i = 0; i < arr.length(); i++) {
				map = new HashMap<String, String>();
				obj = arr.getJSONObject(i);
				it = obj.keys();
				while(it.hasNext()){
					key = it.next();
						val =  (obj.get(key)).toString();
						map.put(key, val);
				}
				list.add(map);
			}			
		} catch (JSONException e) {
			e.printStackTrace();
		}
		return list;
	}
	
	/**
	 * 转换MP自己定义的JSONArray对象为List<Map>对象
	 * @param obj
	 * @return
	 */
	public static JSONArray listToJsonArr(List<Map<String,String>> list){
		String key = null;
		String val = null;
		Iterator<String> it = null;
		JSONObject obj = null;
		Map<String,String> map = null;
		
		JSONArray arr = new JSONArray();
		try {
			for (int i = 0; i < list.size(); i++) {
				obj = new JSONObject();
				map = list.get(i); 
				it = map.keySet().iterator();
				while(it.hasNext()){
					key = it.next();
						val =  (map.get(key)).toString();
						obj.put(key, val);
				}
				arr.put(obj);
			}			
		} catch (JSONException e) {
			e.printStackTrace();
		}
		return arr;
	}	

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Go语言中,Protocol Buffers(protobuf)和JSON是两种常用的数据序列化格式,它们可以帮助你在不同环境之间传输数据,比如服务间通信、持久化存储等。以下是关于它们互转的简单介绍: 1. Protocol Buffers (protobuf): - **protobuf**是由Google开发的一种高效的跨语言数据交换格式,使用.proto文件定义数据结构,然后用`protoc`编译器生成对应的Go代码,实现了数据结构和编码解码功能。 - 在Go中,你可以使用`google/protobuf`包来处理protobuf数据,`pb.NewMessage()`创建一个新的protobuf实例,`Marshal()`和`Unmarshal()`方法分别用于序列化和反序列化。 2. JSON (JavaScript Object Notation): - **JSON**是一种轻量级的数据交换格式,易于人阅读和编写,也容易被机器解析和生成。Go语言中的`encoding/json`包提供了处理JSON数据的功能。 - Go中的`json.Marshal()`和`json.Unmarshal()`函数分别用于将Go数据结构编码为JSON字符串和从JSON字符串反序列化到Go结构体。 互转方法: - **从protobuf转JSON**: - 首先,使用`protoc`编译器生成Go代码,包含`json`标签的protobuf字段可以直接转换。 - 如果没有直接支持,可以手动将protobuf对象转换map[string]interface{},然后使用`json.Marshal()`。 - **从JSON转protobuf**: - 使用`json.Unmarshal()`将JSON字符串解码成Go map或struct,然后构造protobuf对象,设置相应的字段值。 相关问题: 1. protoc编译器在Go中如何使用? 2. 如何在protobuf中添加`json`标签以支持JSON序列化? 3. 如果protobuf对象中某些字段不需要JSON转换,如何处理?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值