- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的对象由五个字段组成:
public class ConfigurationItem {
@SerializedName("show_interest")
boolean show_interest;
@SerializedName("bid_with_price")
boolean bid_with_price;
@SerializedName("anonymous_orders")
boolean anonymous_orders;
@SerializedName("orders_progress_status")
boolean orders_progress_status;
@SerializedName("orders_progress_messages")
boolean orders_progress_messages;
}
我从网络服务器解析这些项目并接收这样的字符串:
{
"ordersProgressStatus":true,
"showInterest":false,
"anonymousOrders":true,
"bidWithPrice":true,
"ordersProgressMessages":true
}
我收到 JSON 并将其保存到 SharedPreferences,如下所示:
public static void saveCurrentConfiguration(Context mContext, JSONObject jsonObject ) {
SharedPreferences sharedPreferences = mContext.getApplicationContext().getSharedPreferences(Constants.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor prefsEditor = sharedPreferences.edit();
prefsEditor.putString(Constants.SHARED_CURRENT_CONFIG, jsonObject.toString());
prefsEditor.apply();
}
但是当我想读取保存的对象时:
public static ConfigurationItem getCurrentConfiguration(Context mContext)
{
SharedPreferences sharedPreferences = mContext.getApplicationContext().getSharedPreferences(Constants.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
Gson gson = new Gson();
String json = sharedPreferences.getString(Constants.SHARED_CURRENT_CONFIG, null);
ConfigurationItem configurationItem = gson.fromJson(json, ConfigurationItem.class);
Log.i(TAG + " loaded config", configurationItem.toString());
return configurationItem;
}
在 configurationItem
中,我只得到错误的值。此外,从 SharedPreference
读取的字符串是正确的,但是当我使用 Gson
进行反序列化时,对象填充了错误的值。
有什么解决办法?
最佳答案
当使用注释 @SerializedName
时,它引用 JSON 字符串中的键值。因此,与其使用 @SerializedName("show_interest")
来序列化 "showInterest"
中的值,不如使用 @SerializedName("showInterest")
当您不想将 JSON 键的名称与字段名称相关联时,使用序列化名称会很方便。例如,当您更喜欢使用 JAVA 标准约定为私有(private)字段添加前缀 m
时,例如 private boolean mShowInterest;
所以当您稍后将字段名称重构为您可以做的其他事情时一个简单的重构,或者如果 JSON 键发生变化,您必须更改注释。
关于java - Gson 只用 false 反序列化 boolean JSON,不管输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31356578/
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 6 年前。 Improve this ques
我是 jQuery 的新手. 是否可以仅使用 jQuery 和 HTML 创建一个网站,例如在线测验? 最佳答案 我想理论上你可以。 要使网站不仅仅是一组静态页面,它必须做一些有用的事情。页面本身只能
所以 'awesome document' LIKE '%doc%' 是真的,因为 doc 是一个子字符串。但是,我希望它是假的,而 'awesome doc' 或 'doc awesome' 或 '
我正在寻找在我的 mysql 数据库中转储所有数据的语法。我不想要任何表格信息。 最佳答案 mysqldump --no-create-info ... 你也可以使用: --skip-triggers
我有一个算法,它在一个循环中使用 C 按位运算符(> 运算符,并且不想使用任何计算机语言(包括汇编)中的现有算术运算符。 最佳答案 在硬件中,您可以在根本没有任何逻辑门的情况下实现左移 1。只需像
我想用四种颜色填充不同的 div,只使用 javascript(当然有 HTML 结构),代码如下: HTML 1 2 3 4 JS var colors = {
我有一个基本的元素设置,根文件夹中有 index.html 和 styles.css。我希望每次单击保存时对 .css 文件所做的更改都会在浏览器中自动刷新。这是我的 gruntfile.js 的内容
我创建了一个应用程序,我需要通过两种方式登录:- Facebook登入,- 正常登录(电子邮件、密码)。 我已经使用 Facebook SDK 添加了 FBLogin 并修改了一个按钮,以便不使用 f
我把它作为我的 gulpfile.js: 'use strict'; var gulp = require('gulp'); var sass = require('gulp-sass'); gulp
RTOS有必要一直用C语言写吗?为什么不能用 Java 或其他技术进行编码……??是不是因为java中没有指针概念? 最佳答案 垃圾收集是反对 Java 实时化的重要原因。 JIT 是另一个,但它可以
我有一个使用 Netbeans 构建的示例代码。 它有一个 build.xml 文件,所以我下载了 ant 并尝试运行它。 我收到此错误消息: ...... nbproject\build-impl.
我正在开发响应式 Web 应用程序,需要创建 2 个独立的内容区域,如下所示, 到目前为止,我尝试过, border-right: 30px solid transparent; border-bot
我有这两个模型: // EventBoost describes the model of a EventBoost type EventBoost struct { ID
是否有一些有用且常用的事情无法用纯 Javascript 完成,而使用一些(不可见)Flash 却可以? 例如文件访问、直接打印、浏览器窗口控制、检测已安装的应用程序... 编辑:我只对客户端脚本感兴
#botonHome .contButton p a span{ height:25px; } #botonHome .contButton p a spa
我的对象由五个字段组成: public class ConfigurationItem { @SerializedName("show_interest") boolean s
使用 SSE 考虑这两个函数: #include int ftrunc1(float f) { return _mm_cvttss_si32(_mm_set1_ps(f)); } int f
在 icc 19 上,点积通过 fma 指令编译为循环。在 clang 和 gcc 上,fma 仅由 -ffast-math 生成. 然而,-ffast-math违反 IEEE 合规性,但 fma 完
我有一个特定的日志消息可能会被打印很多次的场景(可能是数百万次)。例如,如果我们记录(使用 logger.warn() 方法)每条缺少字段的记录,我们最终可能会记录很多输入文件有很多记录的情况缺少字段
在这个回复中 https://stackoverflow.com/a/58737595拜托,你能解释一下怎么写吗: return f( f, std::forward(args)... ); 而 f
我是一名优秀的程序员,十分优秀!