我对文本有问题,我把它作为服务器响应。我想把它写成共享偏好。但它会抛出异常,因为有空格和一些空值的键。
名称= Ali K,picture =,
String jsonStr="{IsEmailSubscription=true, Name=Ali K,picture=,
Id=2534, Surname=Murat, Email=Email}";
JSONObject obj = new JSONObject(jsonStr);
settings.edit().putString(SharedText.Customer.toString(),obj.toString()).commit();
你有什么建议......?
编辑1:
org.json.JSONException: Unterminated object at character 39 of
{IsEmailSubscription=true, Name=Ahmet k, Id=2534, Surname=Kosen,
MobilePhone=5363481189, Email=Email}
服务器返回我的字符串,但我需要将其转换为 JSON,todo我使用JSONObject。
答案 0 :(得分:3)
您的JSON无效,您从哪个服务器获取此信息?你自己的?
它应该是这样的:
String jsonStr="{\"IsEmailSubscription\": true, \"Name\": \"Ali K\", \"picture\": \"\", \"Id\": 2534, \"Surname\": \"Murat\", \"Email\": \"Email\"}";
答案 1 :(得分:0)
正如您所定义的两个问题:
要从JSON对象获取可选字段,可以使用JSONObject中存在的optInt
,optString
种API。
json字符串的正确格式应为:
String jsonStr =" {IsEmailSubscription = true,Name =' Ali K',picture ='',Id = 2534,Surname = Murat,Email = Email} &#34 ;;