将属性文件元素显示为json数组

时间:2016-06-29 13:15:54

标签: java properties

我想将我的属性文件显示为json数组: 这是我的java代码:

props.setProperty("Info1", "stack1");
props.setProperty("Info2", "stack2");

我在属性文件中得到了什么:

 Info1=stack1
 Info2=stack2

这是想要获得的东西

var Obj =  {}
Obj.dataset= [{ "Info1":"stack1" },{ "Info2"="stack2"}];

我尝试过Gson和JsonObject但是徒劳无功。 我该怎么办? 这不是一个重复的问题,因为我正在使用属性类,我已经尝试过的建议答案不起作用。

3 个答案:

答案 0 :(得分:2)

您可以循环遍历属性并将键/值添加到Json数组,如下所示:

await context.PostAsync($"{BotResponses.IntroText}\n{BotResponses.IntroTip}");

答案 1 :(得分:1)

可以使用jackson及其ObjectMapper完成此操作:

Properties props = new Properties();
props.setProperty("Info1", "stack1");
props.setProperty("Info2", "stack2");

ObjectMapper mapper = new ObjectMapper();
StringWriter writer = new StringWriter();
mapper.writeValue(writer, props);
System.out.println(writer.toString());

<强>输出:

{"Info2":"stack2","Info1":"stack1"}

这是一篇关于Jackson的好教程。

答案 2 :(得分:1)

您还可以使用以下内容:

Properties props=new Properties();
                props.setProperty("Info1", "stack1");
                props.setProperty("Info2", "stack2");
    JSONArray array =new JSONArray();       
                    Map map=new HashMap();      

                    Iterator iter=props.keySet().iterator();

                    while (iter.hasNext()) {
                         String key=(String) iter.next();
                         String value=props.getProperty(key);
                         map.put(key, value);
                    }

                    array.put(map);
                    for (int i = 0; i < array.length(); i++) {
                    JSONObject obj=(JSONObject) array.get(i);
                    System.out.println(obj.toString());
                        }