使用net.sf.json.JSONObject轉jsonObject的問題

發現個詭異問題,就是使用net.sf.json.JSONObject來將字符串對象轉換成jsonObject時,對於數值類型的屬性,一些特殊的數值在轉換過程當中會被改變,因此在使用json格式報文進行交易時,像金額這種數值類型的屬性,也應該使用字符串類型進行傳遞,這樣才能安全穩定。json

import net.sf.json.JSONObject;安全

public static void main(String[] args) {
        String data = "{\"request\":{\"body\":{\"amt\":163000.24,\"prjCode\":\"BA2016052500000015\",\"opType\":\"1\"},\"head\":{\"messageSn\":\"bea4b5b4ec83444eaab19e0634937ca1\",\"reqTime\":\"20351102105013139\",\"sysCode\":\"pbnc\",\"txCode\":\"2004\",\"version\":\"100\"}}}";
        JSONObject jsonObject = JSONObject.fromObject(data);
        System.out.println(jsonObject.toString());
    }對象

另外還有一些方法就是:ci

一、json-lib.jar降級到2.3 
二、重寫net.sf.json.util.JSONTokener的417行,改爲 return NumberUtils.createBigDecimal(s);字符串

 

緣由具體能夠參考:http://leaver.me/2015/11/25/json-lib%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E7%B2%BE%E5%BA%A6%E4%B8%A2%E5%A4%B1%E9%97%AE%E9%A2%98/get

相關文章
相關標籤/搜索