如何制作JSON解析器来解析java中的elasticsearch映射?

如何制作JSON解析器来解析java中的elasticsearch映射?,java,json,Java,Json,我想分析这个结构,它是一个elasticsearch过滤器: { "filter": { "name_synonyms_filter": { "synonym_path": "sample.txt", "type": "abc_synonym_filter" }, "name_formatter": { "name": "name_formatter", "type": "abc_token_filter" } } }

我想分析这个结构,它是一个elasticsearch过滤器:

{
"filter": {
   "name_synonyms_filter": {
     "synonym_path": "sample.txt",
     "type": "abc_synonym_filter"
    },
    "name_formatter": {
      "name": "name_formatter",
      "type": "abc_token_filter"
    }
  }
}

我的问题是,在java中,如何在不使用关键字名称、同义词、过滤器等的情况下访问单个过滤器

您的JSON格式不正确

这里是固定的:

{
    "abc": [{
            "name": "somename"
        },
        {
            "name": "somename"
        }
    ]
}
如何解析它:

let x = JSON.parse({
    "abc": [{
            "name": "somename"
        },
        {
            "name": "somename"
        }
    ]
});

console.log(x);

如果您有任何问题,请告诉我。

验证:您确实有abc:{}而不是abc:[]?因为您拥有的不是JSON,如果它不是JSON,那么您就无法将其作为JSON进行解析。您可以手动修复源代码以使其成为有效的JSON,b以某种方式通过编程修复源代码,这取决于文件的实际内容和可能的内容,c编写您自己的解析器。此外,您使用哪种语言处理数据?我看到您再次更新了示例。虽然这是有效的JSON,但在一个对象中有多个具有相同键的条目是非常少见的,因为大多数语言只会使用最后一个条目。这真的是你的问题吗?我更新了问题,这是我的问题,所以你又编辑了一次。现在的问题是你面临的实际问题是什么?abc的值只是另一个对象,就像整个JSON文档是一个对象一样。你知道如何访问对象吗?再说一遍:您使用哪种语言来处理数据?您的问题真的是关于解析从文本到本机值的JSON转换,它应该始终以相同的方式工作或访问解析过程的结果吗?如果是后者,您必须告诉我们您使用什么来解析它,因为每种语言的结果和API都不同。abc仍然不是jsonarray,它就像json列表一样,所以我的问题是如何解析json列表?@TechnocratSid您添加了{}而不是[],同样,这个json是不正确的。您可以使用来了解为什么。FWIW,OP没有提到他们使用的是JavaScript。@FelixKling JSON是一种JavaScript序列化对象表示法,所以我假设他使用的是JS,无论哪种方式,操作JSON的概念都是相同的。@Moshe:JSON用作通用数据交换格式,就像XML一样。这个名字其实没有什么意义。