6

我正在尝试从 json 中获取 Double 值,我想问一下如何检查 double 值是否为空?

这就是我初始化它私有静态的方式

final String kartu_xcord = "xcord";
    private static final String kartu_ycord = "ycord";
    ouble xcord,ycord;

这就是我解析我的json的方式:

xcord = c.getDouble(kartu_xcord);
ycord = c.getDouble(kartu_ycord);

这就是我尝试检查 xcord 为空或为空的方式:

if (xcord.isNaN()) {
            LinlayNoMap.setVisibility(View.VISIBLE);
        } else {
            linlaymap.setVisibility(View.VISIBLE);
}

我希望有人可以帮助我解决我的问题谢谢

4

7 回答 7

17

在javadouble中是不能为null的原始类型, Doublejava中有包装类可以检查为null。

声明您的类型坐标Doublenotdouble并检查Double值是否为空。

于 2013-10-02T09:06:24.360 回答
3

在 Javadouble中不能null.

于 2013-10-02T09:06:02.263 回答
1

它不能为 null 或为空。这是一个双重价值。也许试试双包装?

于 2013-10-02T09:06:14.893 回答
1

您可以检查您的 json 是否具有您正在寻找的密钥:

if (c.hasDouble("my_coord")) {
  y_coord = c.getDouble("my_coord");
}

如果 y_coord 是 a Double(大写 D),您可以将其设置为 null。

if (c.hasDouble("my_coord")) {
  y_coord = c.getDouble("my_coord");
} else {
  y_coord = null;
}

这当然取决于您用来读取您的 API 的 API JSON,该hasDouble方法可以称为其他名称。我建议您尝试一下GSON,非常简单,将为您处理大部分解析工作。

于 2013-10-02T09:09:04.800 回答
0

在 Java 中,双打永远不能为空。您可以改为使用hasKeyJson 的方法来检查您正在解析的项目是否包含该值。

c.hasKey("xcord")
于 2013-10-02T09:08:31.857 回答
0

假设您使用的是 JSONObject,您可以这样做

xcord = c.optDouble(kartu_xcord, Double.MIN_VALUE);

if (xcord == Double.MIN_VALUE){
  //xcord is empty
}
于 2016-01-08T07:38:47.510 回答
-1

使用双倍,而不是双倍。

Double  dValue= someVariable;

if(!dValue.isNaN())
{
 // you code here
}
于 2013-10-02T09:13:25.850 回答