我已经阅读了很多讨论并得到了一些答案..但我仍然想知道我可以有这样的文字:
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,保存相同的树逻辑。谢谢,抱歉如果还有其他的讨论。我只是想问自己的知识。
答案 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();
}
}