将String拆分为对象字段

时间:2017-05-12 17:05:50

标签: java

我正在为这个问题寻找最好的方法。 字符串示例:

{"id":16,"title":"title1","description":"Quote \"foo\" asdf","execution_time":"2017-04-26 06:15:00"}

我需要使用字符串中的gets字段值创建新对象。什么是正确的方法呢?创建构造函数并将此字符串作为参数传递并在其中使用stringtokenizer?或者也许使用Pattern会更好?

1 个答案:

答案 0 :(得分:0)

(我要更正代码) 我建议使用org.json.simple。*。在我看来,这将很容易,例如:

import org.apache.commons.io.IOUtils;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.json.simple.parser.ParseException;

public class ParseJson1 {

    public static void main(String[] args) {
        String url = "....";
        /*
         * {"id":16,"title":"title1","description":"Quote \"foo\" asdf","execution_time":"2017-04-26 06:15:00"}
         */
        try {
            String genreJson = IOUtils.toString(new URL(url));
            JSONObject genreJsonObject = (JSONObject) JSONValue.parseWithException(genreJson);
            // get the title
            System.out.println(genreJsonObject.get("title"));
            // get the data
            JSONArray genreArray = (JSONArray) genreJsonObject.get("dataset");
            // get the first genre
            JSONObject firstGenre = (JSONObject) genreArray.get(0);
            System.out.println(firstGenre.get("genre_title"));
        } catch (IOException | ParseException e) {
            e.printStackTrace();
        }
    }
}