java:从字符串创建嵌套的json对象

java : create nested json object from String

提问人:becem wniss 提问时间:7/3/2017 最后编辑:becem wniss 更新时间:7/3/2017 访问量:1926

问:

我想从字符串创建。 字符串为 .我想要的结果是具有这种格式的对象:org.json.JSONObject"user.phone.num : 00113"org.json.JSONObject

{
user: 
     { 
       phone:  {num: 00113}
     }
}

那么有没有内置的方法可以实现这个结果。谢谢。

Java JSON

评论

0赞 sf_ 7/3/2017
您是否需要或者只是简单但格式?org.json.JSONObjectStringJSON
0赞 Razib 7/3/2017
您可以查看此链接 - stackoverflow.com/questions/22042638/...
0赞 becem wniss 7/3/2017
我需要.org.json.JSONObject
0赞 Ebrahim Poursadeqi 7/3/2017
如果你有这样的 JSON {attr1:{attr2:'ebrahim'},att3:'ps'},你的字符串会怎么样?
0赞 becem wniss 7/3/2017
@EbrahimPoursadeqi在这种情况下,我将有两个字符串,第一个是,第二个是。我构建这些json对象,然后构建全局json对象attr1.attr2: ebrahimatt3: ps

答:

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;
    }
}