以前,当Java(Android)没有稳定版本的域时,我们无法在域中存储空值,我们必须执行一些不自然的黑客才能这样做,如this post中所述
但是现在已经发布了realm 1.0,是否有关于能够存储空值的更新?
例如:不幸的情况是JSON中没有字段我想在解析后存储在领域但没有手动处理它。
我有以下代码:
realmObject.setData(jsonObject.getString("SELECTOR"));
程序流程停止并退出代码所在的块。
logcat显示
W / System.err:org.json.JSONException:SELECTOR没有值
但是当我这样做时:
realmObject.setData(null);
程序流程不会停止并继续我的领域声明realmObject.setData(null);
在某些情况下,我的Json文件中的标签“SELECTOR”没有值。 我希望它默认为null。
答案 0 :(得分:1)
我实际上发现问题实际上只是:
UITextView *textView =[[UITextView alloc] init];
textView.text = @"text here";
[textView setFont:[UIFont systemFontOfSize:90]];
textView.delegate = self;
[textView setBackgroundColor: [UIColor clearColor]];
[textView setTextColor: [UIColor whiteColor]];
textView.frame=CGRectMake(150,300,self.view.frame.size.width-40,200);
//textView.transform = CGAffineTransformMakeRotation(M_PI_4);
[textView setReturnKeyType:UIReturnKeyDone];
textView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[self.view addSubview:textView];
不是整个陈述:
jsonObject.getString("SELECTOR")
所以我的修复是
realmObject.setData(jsonObject.getString("SELECTOR"));
答案 1 :(得分:0)
您可以使用has检查密钥是否可用,以及该保存值是否为realm对象的基础
if (jsonObject.has("SELECTOR")) {
realmObject.setData(jsonObject.getString("SELECTOR"));
}
else{
realmObject.setData(null);
}