在java中将字符串转换为json

时间:2017-07-05 19:12:13

标签: java json

我想将以下python的stdout转换为Java代码中的json对象。

Process p = Runtime.getRuntime().exec(python one.py);

BufferedReader stdInput = new BufferedReader(new
InputStreamReader(p.getInputStream()));

while ((s = stdInput.readLine()) != null) {
    System.out.println(s); }
  

python 输出样本:cat-red-fish dog-brown-meat

     

所需 JSON :“animal”:{“type”:“cat”,“color”:“red”,“food”:“fish”} ...

如何在JSON中传递输出时拆分?

2 个答案:

答案 0 :(得分:1)

如果您对使用库感到满意,可以使用Google的Gson之类的东西将字符串映射到对象。

https://github.com/google/gson

使用此方法,您可以在Animal类中创建三个String / Enum字段,如:

public class Animal {
  private String type;
  private String color;
  private String food;
}

然后,您可以使用Gson#fromJson("jsonString", Animal.class);

答案 1 :(得分:0)

使用最简单的JacksonJSON库或GSON。 http://www.studytrails.com/java/json/java-google-json-parse-json-to-java-tree/

请参阅此答案,了解如何从UserControl对象创建JSON对象。您只需要相应地拆分输入字符串。 https://stackoverflow.com/a/18444414/185565

Map<String,String>

如果上一个链接停止工作,这是gson文档中的copypaste示例。这个将json字符串读取到json对象,因此不能直接回答您的问题,但可能会派上用场。

Map<String,String> myMap = new HashMap<String,String>();
//..populate mymap..
Gson gson = new Gson(); 
String json = gson.toJson(myMap);