jackson Read Write 读取 json 文件和写入 json 文件

jackson 可以由这里获得 http://repo1.maven.org/maven2/com/fasterxml/jackson/

有时候需要将 json 写入磁盘或者由此片读取,这里提供两个例子:创建json对象并写入文件、读取 json 文件并转换为 json 对象,例子如下:

创建 JSON 对象,并写入磁盘文件 c:/temp/test.json

package test;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;

import java.io.FileWriter;
import java.io.IOException;

public class WriteJSON
{

  public WriteJSON()
  {

  }

  public static void main(String[] args)
  {
    try
    {
      ObjectMapper mapper = new ObjectMapper();

      // Create the root node
      ObjectNode root = mapper.createObjectNode();
      // Create a child node
      ObjectNode node1 = mapper.createObjectNode();
      node1.put("nodekey1", 1);
      node1.put("nodekey2", 2);
      // Bind the child nodes
      root.set("child", node1);
      // Array of nodes
      ArrayNode arrayNode = mapper.createArrayNode();
      arrayNode.add(node1);
      arrayNode.add(1);
      // Bind array node
      root.set("arraynode1", arrayNode);
      root.set("arraynode2", arrayNode);

      try (FileWriter file = new FileWriter("c:/temp/test.json"))
      {
        file.write(root.toString());
        file.flush();
      }
      catch (IOException e)
      {
        e.printStackTrace();
      }
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }
}

 

数据以 json 格式存储在文件 c:/temp/data.json 中,用 jackson 的 ObjectMapper 对象载入,用 JsonNode 对象即可进行读取或者存取操作。

c:/temp/data.json 文件内容:

{"data":{"birth_day":7,"birth_month":6},"errcode":0,"msg":"ok","ret":0}

java 代码如下:

import java.io.File;
import java.io.IOException;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class ReadJSON
{

  public static void main(String[] args)
  {
    getJsonFile();

  }

  public static String getJsonFile()
  {
    String strResult = "";
    ObjectMapper objMapper = new ObjectMapper();

    try
    {
      // 指定文件
      String strText = "c:/temp/test.json";
      JsonNode rootNode = objMapper.readTree(new File(strText));
      // 指定某一个节点
      String strData = rootNode.get("child").toString();

      System.out.println(rootNode.toString());
      System.out.println(strData);

      // 获得 json 字符串
      strResult = rootNode.toString();
    }
    catch (JsonProcessingException e)
    {
      e.printStackTrace();
    }
    catch (IOException e)
    {
      e.printStackTrace();
    }

    return strResult;
  }

}

控制台输出结果:

{"data":{"birth_day":7,"birth_month":6},"errcode":0,"msg":"ok","ret":0}
{"birth_day":7,"birth_month":6}

 

 

 

blog.csdn.net/joyous/article/details/50532149

Q群236201801讨论

 

 

GitHub 加速计划 / js / json
18
5
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:3 个月前 )
2d42229f * Support BSON uint64 de/serialization Signed-off-by: Michael Valladolid <mikevalladolid@gmail.com> * Treat 0x11 as uint64 and not timestamp specific Signed-off-by: Michael Valladolid <mikevalladolid@gmail.com> --------- Signed-off-by: Michael Valladolid <mikevalladolid@gmail.com> 5 天前
1809b3d8 Signed-off-by: Niels Lohmann <mail@nlohmann.me> 5 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐