我收到的错误信息是:
org.json.JSONException: Unterminated object at character 14 of {address: yo test}
我认为我应该对字符串进行转义,但在尝试了 StackOverflow 上的所有方法后无济于事。
这是我的代码,非常感谢您的帮助:
// src/Activity.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try{
String str = getString(R.string.data);
JSONObject jsonObj = new JSONObject(str);
}
catch(Exception e){
Log.d("iLoveDrinkActivity", e.toString());
// org.json.JSONException: Unterminated object at character 14 of {address: yo test}
}
}
和…
// res/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="data">{"address": "yo test"}</string>
</resources>
如果“地址”是“test”或“yo”或“123”之类的其他内容,则一切正常。再次感谢!!
原文由 iForests 发布,翻译遵循 CC BY-SA 4.0 许可协议
我能找到的唯一解决方案( Android: Json string with spaces gives “Unterminated object at” exception )是用转义引号替换 json 中的引号
虽然很烦人。想知道是否有更好的解决方案。
编辑:
经过更多的挖掘之后,罪魁祸首似乎是
getString
声称的方法样式文本的剥离发生在本机代码中,所以我不明白为什么它会抛出引号,但看起来确实如此。