将json转为map的两种方式及前后端开发json Api设计规范总结

4 篇文章 0 订阅

一、使用jackson

String jsonData = "{\"identifier\":\"18111111111\",\"opType\":1,\"platform\":0}";
		ObjectMapper mapper = new ObjectMapper();
		try {
			@SuppressWarnings("unchecked")
			Map<String, Object> tmpMap=mapper.readValue(jsonData, Map.class);
			String identifier=(String) tmpMap.get("identifier");
			String identifier2=(String) tmpMap.get("identifier2");
			int opType=(Integer) tmpMap.get("opType");
			int platform=(Integer) tmpMap.get("platform");
			System.out.println("identifier:"+identifier);
			System.out.println("identifier2:"+identifier2);
			System.out.println("opType:"+opType);
			System.out.println("platform:"+platform);
		} catch (JsonParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (JsonMappingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		renderJson(jsonData);

注:https://blog.csdn.net/an129/article/details/74175665

二、使用gson

public class MyType<T> {
	    public T gsonToMap(String strJson) {
	        return new Gson().fromJson(strJson, new TypeToken<T>() {
	        }.getType());
	    }
	}
	
	public void gson() {
		String json = "{\"identifier\":\"18111111111\",\"opType\":1,\"platform\":0}";
		Map<String, Object> tmpMap = new MyType<Map<String, Object>>().gsonToMap(json);
		String identifier=(String) tmpMap.get("identifier");
		String identifier2=(String) tmpMap.get("identifier2");
		double opType=(Double) tmpMap.get("opType");
		double platform=(Double) tmpMap.get("platform");
		System.out.println("identifier:"+identifier);
		System.out.println("identifier2:"+identifier2);
		System.out.println("opType:"+opType);
		System.out.println("platform:"+platform);

		renderJson(json);
	}

注:https://juejin.im/post/5cbb3c5af265da03ab23258c

只要是Number(包括int、long、float、double等)型,都会被强制转化成double,至于为什么这么做,因为这里所有的类型都可以转换成double,而反过来则不行。

三、前后端开发json Api设计规范总结

注:https://sobird.me/http-json-api-guide.htm

       http://tutuge.me/2016/05/02/design-json-api-respoense/

       https://crifan.github.io/http_restful_api/website/restful_experience/pagination.html

四、json数据参考

{
    "errcode": 0,
    "errmsg": "ok",
    "result": {
        "next_cursor": 2,
        "process_list": [
            {
                "icon_url": "https://gw.xxxx/T-102-102.png",
                "name": "物品领用",
                "process_code": "PROC-YMLA1-xxxx-11WFJ-1",
                "url": "https://aflow.dingtalk.com/dingtalk/mobile/homepage.htm?xxxx"
            },
            {
                "icon_url": "https://gw.xxxx/T-102-103.png",
                "name": "通用审批",
                "process_code": "PROC-YMLA1-xxxx-11WFJ-2",
                "url": "https://aflow.dingtalk.com/dingtalk/mobile/homepage.htm?xxxx"
            }
        ]
    },
    "request_id": "72hy9suzb5cg"
}

https://developers.dingtalk.com/document/app/you-can-call-this-operation-to-retrieve-a-list-of

{
"state": "fail"
}

如果错误返回-1 ,fail

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值