如何使用net.sf.json库解析输入流

时间:2013-03-04 21:47:02

标签: json

以下是我在获取Http API格式请求后获得的Json响应,

[{"name":"test","tracing":false},{"name":"dyn1","tracing":false},
{"name":"dyn2","tracing":false},{"name":"esb","tracing":false}]

您能否发布一个示例代码来解析此json对象,以获取具有名称和跟踪的单个Host对象。

谢谢,

阿莫尔

2 个答案:

答案 0 :(得分:1)

String myDataAsAString = "[{\"name\":\"test\",\"tracing\":false},{\"name\":\"dyn1\",\"tracing\":false},
{\"name\":\"dyn2\",\"tracing\":false},{\"name\":\"esb\",\"tracing\":false}]";


JSONArray hostArray = JSONArray.fromObject(myDataAsAString);

for(int i = 0; i < hostArray.size(); i++)
{
    JSONObject hostObject = hostArray.getJSONObject(i);
    String hostName = hostObject.getString("name");
    boolean tracing = hostObject.getBoolean("tracing");
    ...your code for each element here
}

答案 1 :(得分:-1)

您可以使用GSON库http://code.google.com/p/google-gson/

尝试:

import com.google.gson.Gson;


public class Test {

  public static void main(String[] args){
    String json = "[{'name':'test','tracing':false},{'name':'dyn1','tracing':false},\n" +
            "{'name':'dyn2','tracing':false},{'name':'esb','tracing':false}]";
    HostObj[] hostObjects = new Gson().fromJson(json, HostObj[].class);
  }


  class HostObj {

    private String name;
    private boolean tracing;

    HostObj() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        name = name;
    }

    public boolean isTracing() {
        return tracing;
    }

    public void setTracing(boolean tracing) {
        tracing = tracing;
    }
  }
}