将JSON字符串转换为Java对象:Java

将JSON字符串转换为Java对象:Java,java,json,gson,Java,Json,Gson,我有一根绳子 String aString = "[{code:32022,estCode:0,timeZone:CE},{code:59400,estCode:0,timeZone:CE},{code:59377,estCode:0,timeZone:CE},{code:59525,estCode:0,timeZone:CE},{code:59560,estCode:0,timeZone:CE}]" 我正在尝试使用gson将此字符串转换为Map[] 我试着用 Gson gsn = new G

我有一根绳子

String aString = "[{code:32022,estCode:0,timeZone:CE},{code:59400,estCode:0,timeZone:CE},{code:59377,estCode:0,timeZone:CE},{code:59525,estCode:0,timeZone:CE},{code:59560,estCode:0,timeZone:CE}]"
我正在尝试使用gson将此字符串转换为
Map[]

我试着用

Gson gsn = new GsonBuilder().create();
Map[] b = gsn.fromJson(aString , Map[].class);
我能够正确地解析它,并得到如下输出:

[{code=32022.0, estCode=0.0, timeZone=CE}, {code=59400.0, estCode=0.0, timeZone=CE}, {code=59377.0, estCode=0.0, timeZone=CE}, {code=59525.0, estCode=0.0, timeZone=CE}, {code=59560.0, estCode=0.0, timeZone=CE}]
但是这些值被转换为double,我需要它作为字符串。 例:32022已转换为32022.0我需要它,因为32022是否有任何方法可以使用gson中的
ExclusionStrategy
。我在
排除策略中只看到了两种可用的方法,shouldSkipClass和shouldSkipField
是否有其他方法可以使用gson来实现它


请提供帮助

无法更改值的类型,但您可以使用自己的类来执行此操作:

public static void main(String[] args) {
        String aString = "[{code:32022,estCode:0,timeZone:CE},{code:59400,estCode:0,timeZone:CE},{code:59377,estCode:0,timeZone:CE},{code:59525,estCode:0,timeZone:CE},{code:59560,estCode:0,timeZone:CE}]";
        Gson gsn = new GsonBuilder().create();
        TimeCode[] b =  gsn.fromJson(aString, TimeCode[].class);
        for(TimeCode entry:b){
                System.out.print(entry+",");
        }

    }

    class TimeCode{
        String code;
        String estCode;
        String timeZone;

        public String toString(){
            return "code="+code+",estCode="+estCode+",timeZone="+timeZone;
        }
    }
输出:

code=32022,estCode=0,timeZone=CE,code=59400,estCode=0,timeZone=CE,code=59377,estCode=0,timeZone=CE,code=59525,estCode=0,timeZone=CE,code=59560,estCode=0,timeZone=CE,

我希望这会有所帮助。

map follow键值可能重复,但您的json元素中有3个属性{code:32022,estCode:0,timeZone:CE},您想要什么类型的映射。@NikhiK.Bansal it is map[]@MichaelDibbets有没有办法使用gson在映射对象字符串或double中“code”字段的类型?你能提供地图对象的代码吗。?