在Java中利用Jackson解析JSON數據

jopen 12年前發布 | 47K 次閱讀 JSON JSON開發包

Jackson 是一個 Java 用來處理 JSON 格式數據的類庫,性能非常好。

易于人閱讀和編寫。同時也易于機器解析和生成

JSON-lib官網:http://json-lib.sourceforge.net/

Jackson官網:http://jackson.codehaus.org/

號稱性能最快的JSON處理器Jackson遠高于JSON_lib


轉化json字符串:

/**

  • 使用Jackson生成json格式字符串
  • @author archie2010 since 2011-4-26下午05:59:46 */ public class JacksonTest {

    private static JsonGenerator jsonGenerator = null; private static ObjectMapper objectMapper = null; private static User user = null;

    /**

    • 轉化實體為json字符串
    • @throws IOException */ public static void writeEntity2Json() throws IOException{ System.out.println("使用JsonGenerator轉化實體為json串-------------"); //writeObject可以轉換java對象,eg:JavaBean/Map/List/Array等 jsonGenerator.writeObject(user); System.out.println(); System.out.println("使用ObjectMapper-----------"); //writeValue具有和writeObject相同的功能 objectMapper.writeValue(System.out, user); } /**
    • 轉化Map為json字符串
    • @throws JsonGenerationException
    • @throws JsonMappingException
    • @throws IOException */ public static void writeMap2Json() throws JsonGenerationException, JsonMappingException, IOException{ System.out.println("轉化Map為字符串--------"); Map<String, Object> map=new HashMap<String, Object>(); map.put("uname", user.getUname()); map.put("upwd", user.getUpwd()); map.put("USER", user); objectMapper.writeValue(System.out, map); } /**
    • 轉化List為json字符串
    • @throws IOException
    • @throws JsonMappingException
    • @throws JsonGenerationException */ public static void writeList2Json() throws IOException{ List<User> userList=new ArrayList<User>(); userList.add(user);

      User u=new User(); u.setUid(10); u.setUname("archie"); u.setUpwd("123"); userList.add(u); objectMapper.writeValue(System.out, userList);

    objectMapper.writeValue(System.out, userList);
}
public static void main(String[] args) {
    user = new User();
    user.setUid(5);
    user.setUname("tom");
    user.setUpwd("123");
    user.setNumber(3.44);
    objectMapper = new ObjectMapper();
    try {
        jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8);
        //writeEntity2Json();
        //writeMap2Json();
        writeList2Json();
    } catch (IOException e) {

        e.printStackTrace();

    }
}

}</pre>[{"number":3.44,"uname":"tom","upwd":"123","uid":5},{"number":0.0,"uname":"archie","upwd":"123","uid":10}]

輸出到瀏覽器端:

StringWriter writer = new StringWriter();
ObjectMapper mapper = new ObjectMapper();
  try {
   mapper.writeValue(writer, hMap);
  } catch (JsonGenerationException e) {
   e.printStackTrace();
  } catch (JsonMappingException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }

response.setContentType("text/html;charset=UTF-8"); PrintWriter out= response.getWriter();

out.print(writer.toString());</pre>

</span>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!