提问人:becem wniss 提问时间:7/3/2017 最后编辑:becem wniss 更新时间:7/3/2017 访问量:1926
java:从字符串创建嵌套的json对象
java : create nested json object from String
问:
我想从字符串创建。
字符串为 .我想要的结果是具有这种格式的对象:org.json.JSONObject
"user.phone.num : 00113"
org.json.JSONObject
{
user:
{
phone: {num: 00113}
}
}
那么有没有内置的方法可以实现这个结果。谢谢。
答:
0赞
Darshit Chokshi
7/3/2017
#1
尝试使用下面 -
JSONObject obj1 = new JSONObject();
obj1.put("birthdate", "01-01-2017");
obj1.put("age", new Integer(18));
JSONObject obj2 = new JSONObject();
obj2.put("name", "abc");
obj2.put("details", obj1);
1赞
Ebrahim Poursadeqi
7/3/2017
#2
如果你的 JSON 的每一行都被拆分了,你可以试试这段代码
import org.json.JSONException;
import org.json.JSONObject;
/**
* Created by ebi on 7/3/17.
*/
public class Main {
public static void main(String[] args) throws JSONException {
String str = "user.phone.num : 00113";
String json_str = str_to_json(str);
JSONObject jsonObject = new JSONObject(json_str);
System.out.println(jsonObject);
}
public static String str_to_json(String jsonByDot){
int valOffset = jsonByDot.indexOf(":");
String keys = jsonByDot.substring(0,valOffset).trim();
String val = jsonByDot.substring(valOffset+1).trim();
String keysArr[] = keys.split("\\.");
String output = "";
for(String key:keysArr){
output+="{"+key+":";
}
output+=val;
for (int i = 0 ;i<keysArr.length;i++){
output+="}";
}
return output;
}
}
评论
org.json.JSONObject
String
JSON
org.json.JSONObject
attr1.attr2: ebrahim
att3: ps