Java json 将值附加到 json 数组

标签 java json jsonpath

如何将值附加到现有的 json 数组?

我现有的 json 数组具有以下值

{
  "test": [
    1,
    2,
    3,
    4
  ]
} 

我想将“0”添加到 json 数组中,以便新的 json 数组看起来像

{
  "test": [
    0,  
    1,
    2,
    3,
    4
  ]
} 

最佳答案

使用 Java 和 Jackson 库,您可以将 (json) 字符串反序列化为 Java 对象,添加条目,然后序列化修改后的对象(将其打印为 Json 格式)。

例如,使用此代码

package json;
import java.util.Collections;
import java.util.List;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

public class UseJson {
  public static void main(String[] args) throws Exception {
    ObjectMapper om = new ObjectMapper();
    String json = "{\r\n" + 
    "  \"test\": [\r\n" + 
    "    1,\r\n" + 
    "    2,\r\n" + 
    "    3,\r\n" + 
    "    4\r\n" + 
    "  ]\r\n" + 
    "} ";
    System.out.println("json="+json);
    Wrap val = om.readValue( json, Wrap.class);
    System.out.println("read val="+val);
    val.test.add(0);
    Collections.sort(val.test);
    System.out.println("val="+val);
    om.enable(SerializationFeature.INDENT_OUTPUT);
    String json2 = om.writeValueAsString(val);
    System.out.println("json2="+json2);
  }
}

class Wrap {
  public List<Integer> test;
  @Override
  public String toString() {
    return "Wrap[test=" + test + "]";
  }
}

你得到..

json={
  "test": [
    1,
    2,
    3,
    4
  ]
} 
read val=Wrap[test=[1, 2, 3, 4]]
val=Wrap[test=[0, 1, 2, 3, 4]]
json2={
  "test" : [ 0, 1, 2, 3, 4 ]
}

(将在 Maven 项目中编译,包括 jackson-corejackson-databind)

关于Java json 将值附加到 json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54634786/

相关文章:

java - 如何查询流程定义的完成实例?

Java EE - 更通用的错误代码映射

javascript - 如何使多个 XMLHttpRequest for JSON 形成不同的位置?

javascript - 我可以使用 d3.json 处理类似于 json 格式的字符串吗?

java卡从 ".cap file"反编译操作

java - 如何在不注册客户端的情况下制作 RMI 服务器多客户端程序

java - 如何使用 Jackson Json lib 将所有 int 和 boolean 字段序列化为 String

c# - 如何使用使用 JsonPath 的 C# 示例?

javascript - 修改一个复杂的深度嵌套的 javascript 对象

java - 使用 jsonpath 解析数组索引