利用fastJson、Gson做json以及String的互相转换

fastJson

1、String转换为JSONObject

String param = "{\"age\":\"24\",\"name\":\"cool_summer_moon\"}";
JSONObject  jsonObject = JSONObject.parseObject(param);
Object object = jsonObject.get("name");

2、JSONObject转换为String

String jsonString = jsonObject.toJSONString();

3、JsonString转换为Object

 String jsonString = jsonObject.toJSONString();
 Info info = JSON.parseObject(jsonString, Info.class);

 4、String 转 Map

String str = "{\"age\":\"24\",\"name\":\"cool_summer_moon\"}";
JSONObject  jsonObject = JSONObject.parseObject(str);
//json对象转Map

Map<String,Object> map = (Map<String,Object>)jsonObject;
Object object = map.get("age");

5、Map转String

Map<String,Object> map = new HashMap<>();
map.put("age", 24);
map.put("name", "cool_summer_moon");
String jsonString = JSON.toJSONString(map);
System.out.println("json字符串是:"+jsonString);


运行结果:
json字符串是:{"name":"cool_summer_moon","age":24}

6、Map转换为Json

Map<String,Object> map = new HashMap<>();
map.put("age", 24);
map.put("name", "cool_summer_moon");
JSONObject json = new JSONObject(map);
System.out.println("Json对象是:" + json);


运行结果:
Json对象是:{"name":"cool_summer_moon","age":24}

7、获取JSONObject中的JSONObject

String str = "{\"age\":\"24\",\"info\":{\"name\":\"cool_summer_moon\",\"time\":\"201902131331\"}}";
JSONObject  jsonObject = JSONObject.parseObject(str);
JSONObject info = jsonObject.getJSONObject("info");
info.get("name").toString();
System.out.println("data==>"+info.toString());
System.out.println("name==>"+ info.get("name").toString());

返回值:
data==>{"name":"cool_summer_moon","time":"201902131331"}
name==>cool_summer_moon

gson:

1、string转换为object

Gson gson = new Gson();
String deployJson = pDeploy.getDeploymentJson();
Deployment deployment = gson.fromJson(deployJson,Deployment.class);

2、object转换为String

Deployment deployment = new Deployment();
Gson gson  = new Gson();
pDeployment.setDeploymentJson(gson.toJson(deployment));

3、map转换为json

Gson gson = new Gson();
Map map = Maps.newHashMap();  
map.put("colour", "red");  
map.put("weight", "10kg");  
gson.toJson(map);  

4、json转换为map

Gson gson = new Gson();  
Map map = Maps.newHashMap();  
map.put("colour", "red");  
map.put("weight", "10kg");  
String mapJson =  gson.toJson(map);  
map = gson.fromJson(mapJson,Map.class);  

jackson

ObjectMapper om = new ObjectMapper();
List<Map<String,Object>> list =  om.readValue(temp, new TypeReference<List<Map<String, Object>>>() {});

 

 /**
     * description 生成参数
     * @param orderBean
     * @return
     */
    public JSONObject getOrderBody(OrderBean orderBean){
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
        String timestamp = df.format(LocalDateTime.now()) + "";
        TreeMap<String, Object> params = new TreeMap<String, Object>();
        params.put("appId", orderBean.getAppId());
        params.put("timestamp", timestamp);
        params.put("version", orderBean.getVersion());
        params.put("serviceCode", orderBean.getServiceCode());
        params.put("phoneId", orderBean.getPhoneId());
        params.put("orderType", orderBean.getOrderType());
        params.put("activityId", orderBean.getActivityId());
        params.put("skuId", orderBean.getSkuId());
        orderBean.setCustomerOrderId(timestamp+orderBean.getPhoneId());
        params.put("customerOrderId", orderBean.getCustomerOrderId());
        params.put("effectType", orderBean.getEffectType());
        params.put("orderCount", orderBean.getOrderCount());
        params.put("notifyUrl", orderBean.getNotifyUrl());
        JSONObject attach = new JSONObject();
        attach.put("destinationIp", orderBean.getDestinationIP());
        attach.put("userIp", orderBean.getPrivateIP());
        attach.put("token", orderBean.getQosToken());
        params.put("attach", attach.toString());
        String sign = "";
        try {
            sign = HmacUtil.signTopRequest(params, APP_KEY);
        } catch (IOException e) {
            e.printStackTrace();
        }
        JSONObject header = new JSONObject();
        header.put("appId", orderBean.getAppId());
        header.put("serviceCode", orderBean.getServiceCode());
        header.put("timestamp", timestamp);
        header.put("version", orderBean.getVersion());
        header.put("sign", sign);
        JSONObject parameter = new JSONObject();
        parameter.put("customerOrderId", orderBean.getCustomerOrderId());
        parameter.put("phoneId", orderBean.getPhoneId());
        parameter.put("notifyUrl", orderBean.getNotifyUrl());
        parameter.put("orderType", orderBean.getOrderType());
        parameter.put("skuId", orderBean.getSkuId());
        parameter.put("activityId", orderBean.getActivityId());
        parameter.put("effectType", orderBean.getEffectType());
        parameter.put("orderCount", orderBean.getOrderCount());
        parameter.put("attach", attach.toString());
        JSONObject reqParam = new JSONObject();
        reqParam.put("header", header.toString());
        reqParam.put("params", parameter.toString());
        return  reqParam;
    }
JSONObject reqParam = accessUtil.getOrderBody(orderBean);
// 返回值
 String resp = RequestUtil.httpReqForJsonWithPostMethod(AccessConstants.endpoint, reqParam.toString());
 JSONObject respObject = JSONObject.fromObject(resp);

if(respObject.containsKey("resCode") && respObject.containsKey("resDesc")){
   map.put("resCode",respObject.getString("resCode"));
   map.put("resDesc",respObject.getString("resDesc"));
}else {
   map.putAll(ResultStatesEnum.ORDER_FAILURE.toMap());  
}

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
包含以下java源文件: com.google.gson.DefaultDateTypeAdapter.class com.google.gson.ExclusionStrategy.class com.google.gson.FieldAttributes.class com.google.gson.FieldNamingPolicy.class com.google.gson.FieldNamingStrategy.class com.google.gson.Gson.class com.google.gson.GsonBuilder.class com.google.gson.InstanceCreator.class com.google.gson.JsonArray.class com.google.gson.JsonDeserializationContext.class com.google.gson.JsonDeserializer.class com.google.gson.JsonElement.class com.google.gson.JsonIOException.class com.google.gson.JsonNull.class com.google.gson.JsonObject.class com.google.gson.JsonParseException.class com.google.gson.JsonParser.class com.google.gson.JsonPrimitive.class com.google.gson.JsonSerializationContext.class com.google.gson.JsonSerializer.class com.google.gson.JsonStreamParser.class com.google.gson.JsonSyntaxException.class com.google.gson.LongSerializationPolicy.class com.google.gson.TreeTypeAdapter.class com.google.gson.TypeAdapter.class com.google.gson.TypeAdapterFactory.class com.google.gson.annotations.Expose.class com.google.gson.annotations.SerializedName.class com.google.gson.annotations.Since.class com.google.gson.annotations.Until.class com.google.gson.internal.ConstructorConstructor.class com.google.gson.internal.Excluder.class com.google.gson.internal.JsonReaderInternalAccess.class com.google.gson.internal.LazilyParsedNumber.class com.google.gson.internal.LinkedTreeMap.class com.google.gson.internal.ObjectConstructor.class com.google.gson.internal.Primitives.class com.google.gson.internal.Streams.class com.google.gson.internal.UnsafeAllocator.class com.google.gson.internal.bind.ArrayTypeAdapter.class com.google.gson.internal.bind.CollectionTypeAdapterFactory.class com.google.gson.internal.bind.DateTypeAdapter.class com.google.gson.internal.bind.JsonTreeReader.class com.google.gson.internal.bind.JsonTreeWriter.class com.google.gson.internal.bind.MapTypeAdapterFactory.class com.google.gson.internal.bind.ObjectTypeAdapter.class com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.class com.google.gson.internal.bind.SqlDateTypeAdapter.class com.google.gson.internal.bind.TimeTypeAdapter.class com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.class com.google.gson.internal.bind.TypeAdapters.class com.google.gson.reflect.TypeToken.class com.google.gson.stream.JsonReader.class com.google.gson.stream.JsonScope.class com.google.gson.stream.JsonToken.class com.google.gson.stream.JsonWriter.class com.google.gson.stream.MalformedJsonException.class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值