- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个从服务器返回的响应,我期待一个字符串值,所以我写了这个来解析它
public String getMessageFromServer(JSONObject response) {
String msg = response.getString("message");
return msg;
}
然后,当我在我的代码中使用它并从服务器获取 null
值时,该函数不返回 null
,它返回 "null "
代替。
我看过this bug report ,但我没有看到解决方案。
编辑:
我有一个小技巧可以解决这个问题,但它很难看,我正在寻找更好的解决方案:
public String getMessageFromServer(JSONObject response) {
Object msg = response.get("message");
if(msg == null) {
return null;
}
return (String) msg;
}
编辑 #2:
多年后,回到这个问题,我发现我在这里并没有完全错,并且 JSONObject
有一个内置的方法。
从 JSONObject
获取可选值的方法是使用 this method JSONObject.optString("message", DEF_VALUE);
最佳答案
hack 看起来适合您的情况。
另一种选择是使用 boolean isNull(String key)
方法,然后根据返回的 boolean 值继续您的选择。比如:
public String getMessageFromServer(JSONObject response) {
return ((response.has("message") && !response.isNull("message"))) ? response.getString("message") : null;
}
但是,我认为您当前的实现与此之间没有太大区别。
关于java - JSON.getString 不返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13118146/
我注意到 Activity 类有两种不同的方法来获取字符串资源。这可以通过使用: getString(int resId):从应用程序包的默认字符串表中返回一个本地化字符串。 getResources
有什么值得注意的区别吗?我说的是一个花费大量时间读取查询结果的程序,并且某些运行(这些是网络点击)花费了 2 分钟以上的时间。如果我可以通过使用整数而不是字段名称来节省几秒钟,我想我可以免费获得一些时
要获取设备 ID,我通常使用以下代码段: String android_id = Settings.System.getString(getContentResolver(), Secure.ANDR
我在文件夹中有一些带有字符串的本地化文件,例如 values values-ru values-es etc. 在每个文件夹中都有一个 strings.xml 文件,其键相同但值不同。 在 Debug
我在 Assets 文件夹中使用不同的文本文件(arabic.txt,english.txt)我想更改设备语言的文件库 值/字符串文件中可以设置文件名吗? public static class Ti
我有一个扩展应用程序的类。我需要从 strings.xml 文件中获取一个字符串。 我正在使用此类来管理全局状态,因此它是通过 list 加载的。 加载时,getString() 生成一个空指针引用。
所以我在strings.xml中有很多字符串,它们的记录格式是: xxxxxxxxxxx xxxxxxxxxxx xxxxxxxxxxx ...... 现在我想一个一个地加载它们,而不必输入所有的字符
我有一个类,我应该在其中将一些字符串(取自 strings.xml)插入到 StringBuffer 中。这将传递给一个 Activity 。问题是我应该使用 getString() 方法,但我不能,
有没有办法以编程方式更改 R.string?因为它会抛出错误。 基本上我想这样做:String parkAdd = getString(R.string.stg_ParkAddress_+id); 因
我遇到了一个只出现在这个语法中的崩溃,在这个语句之后它崩溃了 ats+=getString(R.string.gal_grietineles , grietinele)+"\n";当我使用 ats+=
这是我的 onActivityResult 方法的代码: @Override public void onActivityResult(int requestCode, int resultCode,
我是android新手,我正在编写一个应用程序来根据纬度和经度获取地址。在 FetchAddressIntentService 类中,我在 getString() 函数中收到一个错误,指出将字符串添加
我遇到的问题是 getString() 返回的不是 id 的字符串,而是另一个字符串。但首先这是我的代码: public public class ShopFragment extends Fragm
在我的应用程序的应用程序类的 onCreate 中,我有这段代码 Locale current = getResources().getConfiguration().locale;
我想知道 getString()。我可以看到执行 getString(R.string.some_text) 是有效的。 getResources().getString(R.string.conne
基于 Android 文档: https://developer.android.com/training/basics/supporting-devices/languages https://de
我使用的是 Delphi 2009。 这对我来说适用于所有情况,除了一种情况: var BOMLength: integer; Buffer: TBytes; Encoding: TEnc
Dictionary Fields = new Dictionary();for (int i = 0; i < reader.FieldCount; i++){ Fields.Add(rea
我有一个名为 spiliaBeach 的 Place Object 实例,它接受您在下面看到的参数: public PlaceObject spiliaBeach = new PlaceObject(
我有: Toast.makeText(NewChatActivity.this, getString(R.string.invitation_sent_prompt, contact), Toast.
我是一名优秀的程序员,十分优秀!