我想将以下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中传递输出时拆分?
答案 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);