文本到JSON格式

时间:2013-11-29 19:19:10

标签: java javascript json parsing gson

我已经阅读了很多讨论并得到了一些答案..但我仍然想知道我可以有这样的文字:

ps:mandatory' child of Input command functions
Properties

ps:Source:
    f47437

ps:Created:
    2010-09-03T11:38:02.629Z

ps:ChangedBy:
    F47437

ps:Changed:
    2011-09-07T07:51:10.864Z

采用JSON格式。问题在于..该文件包含数万种文本类型,它们就像树族。我的观点是将其转换为JSON,保存相同的树逻辑。谢谢,抱歉如果还有其他的讨论。我只是想问自己的知识。

1 个答案:

答案 0 :(得分:2)

你的意思是这样吗?

{
    "ps:mandatory": "Properties",
    "ps:Source:": "f47437",
    "ps:Created:": "2010-09-03T11:38:02.629Z",
    "ps:ChangedBy:": "F47437",
    "ps:Changed:": "2011-09-07T07:51:10.864Z"
}

记住JSON 无序非常重要,因此当您将标记存储在JSON中时,很可能会丢失标记的顺序。如果订单很重要,请考虑其他文件格式。


以下代码会将您的数据转换为JSON。编译和工作:

import org.json.*;
public class CreateMyJSON
{
    public static void main(String[] args)
    {
        String testData = "ps:mandatory\nProperties\n\nps:Source:\n    f47437\n\nps:Created:\n    2010-09-03T11:38:02.629Z\n\nps:ChangedBy:\n    F47437\n\nps:Changed:\n    2011-09-07T07:51:10.864Z\n\n";
        CreateMyJSON cmj = new CreateMyJSON();
        System.out.println(cmj.getJSONFromString(testData));
        }

    public String getJSONFromString(String theData)
    {   
        JSONObject jso = new JSONObject();
        //no error checking, but replacing double returns
        //to make this simpler
        String massagedData = theData.replaceAll("\n\n", "\n");
        String[] splits = massagedData.split("\n");
        for(int i = 0; i < splits.length; i++)
        {
            jso.put(splits[i].trim(), splits[++i].trim());
        }

        return jso.toString();
    }
}