Java String.valueOf返回null字符串

时间:2014-09-11 18:58:05

标签: java json

我有一个json输入,我需要将json中的一个赋值给int。我该怎么办?

1)我试过这种方式,有没有更好的方法?

        String idValue = String.valueOf(jsonObject.get("id"));
        System.out.println("IDValue 1 is-->"+jsonObject.get("id"));
        System.out.println("IDValue 2 is-->"+idValue);
        int id = 0;
        if(idValue != null){
            System.out.println("IDValue 3 is-->"+idValue);
            id = Integer.parseInt(idValue);
        }

控制台输出:

IDValue 1 is-->null
IDValue 2 is-->null
IDValue 3 is-->null

我正在使用Java1.7和json简单jar

2)我在json中没有id的任何输入值。在这里,我不确定为什么它进入内部如果条件。

当我这样做时:如果条件:

进入内部
if(idValue.equals("null")){
            System.out.println("Entered inside");
} 

输出:

    IDValue 1 is-->null
    IDValue 2 is-->null
    IDValue 3 is-->null
    Entered inside

我的杰森:

[
{
"Company":"BEG22",
"Account":"1004",
"Deptid":"13"
},

{
"Company":"BEG3",
"Account":"1002",
"Deptid":"24"
}
]

2 个答案:

答案 0 :(得分:1)

原因如下: String.valueOf的实现是:

public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
}

最后:

if(!idValue.equals("null") ){
  System.out.println("IDValue 2 is-->"+idValue);
  id = Integer.parseInt(idValue);
 }

答案 1 :(得分:0)

    String idValue = String.valueOf(jsonObject.get("Deptid"));
    System.out.println("IDValue 1 is-->"+jsonObject.get("Deptid"));
    System.out.println("IDValue 2 is-->"+idValue);
    int id = 0;
    if("null".equals(idValue)){
        System.out.println("IDValue 3 is-->"+idValue);
        id = Integer.parseInt(idValue);
    }

我改变的一些事情如果有用的话就试试吧......