当前位置: 首页 > 知识库问答 >
问题:

JSON中使用Jersey+MOXY的变量类型

呼延渝
2023-03-14
{
    indexes:[
    {
       "name": "ABC",
       "value": "abcdef"
       "displayValue": "abcdef",
       "type": "string"
     },
     {
        "name": "XYZ",
        "value": 12345
        "displayValue": "12345",
        "type": "number"
     },
     ...
     ]
}
public class Index {
    String name;
    Object value;
    String displayValue;
    String type;
}
{
     indexes:[
     {
          "name": "ABC",
      "value": {
          "type": "xsd:string",
          "value": "abcdef"
      },
      "displayValue": "abcdef",
      "indexType": "string"
     },
     {
          "name": "XYZ",

          "value": {
            "type": "xsd:int",
            "value": 812501
        },
     "displayValue": "812501",
     "indexType": "number"
     },
     ...

有没有任何方法来实现我所需要的,“值”字段的变量类型值?

共有1个答案

通煜祺
2023-03-14

我不知道你的问题到底出在哪里。您使用的是什么JSON库?另外,您能提供更多关于您的索引类的细节吗?我不确定为什么您的setValue(对象值)需要做任何特殊的事情。如果我使用带有以下代码的Jackson json库:

public static void main(String[] args) throws JsonProcessingException {
    Index[] indices = new Index[2];
    indices[0] = new Index();
    indices[0].name = "ABC";
    indices[0].value = "abcdef";
    indices[0].displayValue = indices[0].value + "";
    indices[0].type = "string";
    indices[1] = new Index();
    indices[1].name = "XYZ";
    indices[1].value = 123456;
    indices[1].displayValue = indices[1].value + "";
    indices[1].type = "number";
    System.out.println(new ObjectMapper().writeValueAsString(indices));
}

public static class Index {

    String name;
    Object value;
    String displayValue;
    String type;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Object getValue() {
        return value;
    }

    public void setValue(Object value) {
        this.value = value;
    }

    public String getDisplayValue() {
        return displayValue;
    }

    public void setDisplayValue(String displayValue) {
        this.displayValue = displayValue;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}

我得到以下输出:

[{"name":"ABC","value":"abcdef","displayValue":"abcdef","type":"string"},
 {"name":"XYZ","value":123456,"displayValue":"123456","type":"number"}]

我相信这就是你要找的。

 类似资料:
  • 我正在使用Jersey Web services(2.23),并将POJO映射用于JSON到对象的映射(Jersey-media-moxy)。我创建了一个类,如下所示: 我希望该对象的实例具有以下结构:

  • 问题内容: 我在Moxy上使用Jersey 2.17,并且具有以下功能: User.preferences是一个。 除了将a 转换为: “ preferences”:{“ entry”:[{“ key”:{“ type”:“ string”,“ value”:“ language”},“ value”:{“ type”:“ string”,“ value”: “ en”}},{“ key”:{“

  • 我正在使用泽西2.17和Moxy,我有如下功能: user.preferences是。 “首选项”:{“entry”:[{“key”:{“type”:“string”,“value”:“language”},“value”:{“type”:“string”,“value”:“en”}},{“key”:{“type”:“string”,“value”:“country”},“value”:“coun

  • 我已经在这个问题上纠缠了好几天,现在正在寻找一些指导来帮助解决这个问题。我在Metro下使用jax ws有着丰富的经验,但这是我第一次使用Jersey进入jax rs。为了简化运动部件,我以moxy代码为起点。 我修改了示例项目以接受XML和JSON。我以为这很简单,但我似乎错过了一些东西,因为这是一次痛苦的经历。当我请求“application/xml”时,代码运行没有问题,GET将用于“app

  • 我在我的Jersey(2.7)项目中使用Moxy,基本上只是为了在服务发出响应时将我的对象整理为JSON。它工作得很好,但现在我也在使用ContainerResponseFilter对发出的每个响应进行一些更改,我不确定如何将请求体的内容解组到一个对象中,这是我需要的。 但我不确定是否有可能将它自动转换为一个对象。我需要的信息比较简单,所以我想我可以用另一种方式解析JSON,但我很好奇。 我试过找

  • 我有2种类型的类型类,其中一种类型包含另一种类型 我想这样称呼我的类型类: 但这行不通。 错误:(34,23)找不到参数e的隐式值:com.playground.Valides[com.playground.MyModel1,model.version.type]val v=隐式[Valides[MyModel1,model.version.type]]错误:(34,23)没有足够的隐式方法参数: