如何在java中将snake_case JSON转换为嵌套的JSON?

时间:2014-06-28 10:00:03

标签: java json

我几乎没有想要将snake_case JSON转换为嵌套JSON的情况 e.g。

{
    "snake_case": {
        "test": "value"
    }
}

{
    "snake": {
        "case": {
            "test": "value"
        }
    }
}

有没有办法在java中执行此操作,然后使用_手动解析字符串,或者java中是否有任何库?

2 个答案:

答案 0 :(得分:0)

将您的JSON数据视为字符串:

String strjson="{snake_case: {test: value}}";

然后

JSONObject jj=new JSONObject(strjson);
JSONObject jfinal=new JSONObject();

Iterator<String> itr=jj.keys();

while(itr.hasNext())
{
    String key=itr.next();
    if(key.contains("-"))
    {
        JSONObject jkey=jj.getJSONObject(key);
        JSONObject jnew=new JSONObject();
        jnew.put(key.split("-")[1],jkey);
        jfinal.put(key.split("-")[0],jnew);
    }
}

你可以在jfinal获得输出。

答案 1 :(得分:0)

您可以BSON实现这一目标。这是您将使用的代码。

 //import java.util.ArrayList;
 //import org.bson.Document;

 //Declare three json object
 Document root= new Document();
 Document rootSnake = new Document();
 Document rootSnakeCase = new Document();


 //Add value to the most nested object
 rootSnakeCase.append("test","value");



 //combine the objects together
 if (!rootSnakeCase.isEmpty()){
 rootSnake.append("case",rootSnakeCase);
 }
 if (!rootSnake.isEmpty()){
 root.append("snake",rootSnake);
 }


 //output code
 System.out.println(root.toJson());