java:从String创建嵌套的json对象

时间:2017-07-03 11:06:10

标签: java json

我想从String创建org.json.JSONObject。 字符串是"user.phone.num : 00113"。我希望得到的结果是具有以下格式的org.json.JSONObject对象:

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

所以有任何内置的方法来实现这个结果。感谢。

2 个答案:

答案 0 :(得分:1)

如果你的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;
    }
}

答案 1 :(得分:0)

尝试使用以下 -

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