小编Beh*_*ali的帖子

EclipseLink MOXy JSON序列化

我有一个示例课程:

class Zoo {
    public Collection<? extends Animal> animals;
}
Run Code Online (Sandbox Code Playgroud)

当使用MOXy序列化时,我得到:

{
    "bird": [
        {
            "name": "bird-1",
            "wingSpan": "6 feets",
            "preferredFood": "food-1"
        }
    ],
    "cat": [
        {
            "name": "cat-1",
            "favoriteToy": "toy-1"
        }
    ],
    "dog": [
        {
            "name": "dog-1",
            "breed": "bread-1",
            "leashColor": "black"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

为什么它使用数组指示符"[]",而鸟,猫和狗不是数组?第二,有没有办法摆脱"鸟","猫"和"狗"?

换句话说,我试图去:

{
        {
            "name": "bird-1",
            "wingSpan": "6 feets",
            "preferredFood": "food-1"
        }
    ,
        {
            "name": "cat-1",
            "favoriteToy": "toy-1"
        }
    ,
        {
            "name": "dog-1",
            "breed": "bread-1",
            "leashColor": "black"
        }
}
Run Code Online (Sandbox Code Playgroud)

谢谢,Behzad

java json marshalling eclipselink moxy

10
推荐指数
1
解决办法
3094
查看次数

MOXy反序列化异常:在项目中找不到具有默认根元素的描述符

这是我的课程:

@XmlRootElement(name="Zoo")
class Zoo {
    //@XmlElementRef
    public Collection<? extends Animal> animals;
}

@XmlAccessorType(XmlAccessType.FIELD)
@XmlSeeAlso({Bird.class, Cat.class, Dog.class})
@XmlDiscriminatorNode("@type")
abstract class Animal {
    @XmlElement
    public String name; 
}

@XmlDiscriminatorValue("Bird")
@XmlRootElement(name="Bird")
class Bird extends Animal {
    @XmlElement
    public String wingSpan;
    @XmlElement
    public String preferredFood;
}

@XmlDiscriminatorValue("Cat")
@XmlRootElement(name="Cat")
class Cat extends Animal {
    @XmlElement
    public String favoriteToy;
}

@XmlDiscriminatorValue("Dog")
@XmlRootElement(name="Dog")
class Dog extends Animal {
    @XmlElement
    public String breed;
    @XmlElement
    public String leashColor;
}
Run Code Online (Sandbox Code Playgroud)

这是序列化的JSON:

   {
        "animals": [
            {
                "type": "Bird",
                "name": "bird-1",
                "wingSpan": …
Run Code Online (Sandbox Code Playgroud)

java json moxy

7
推荐指数
1
解决办法
2万
查看次数

kafka avro console consumer does not deserialize DECIMAL correctly as decimal

I am using Confluent's kafka-connect-jdbc to read data from different RDBMS into kafka. Here is my test table:

CREATE TABLE DFOCUSVW.T4(
    COL1 VARCHAR(100) NOT null,
    COL2 DECIMAL(6, 3) NOT null,
    COL3 NUMERIC(6, 3) NOT null,            
    COL4 DECIMAL(12, 9) NOT null,
    COL5 NUMERIC(12, 9) NOT null,
    COL6 DECIMAL(18, 15) NOT null,
    COL7 NUMERIC(18, 15) NOT null,
    COL8 INTEGER NOT null,
    Td_Update_Ts timestamp NOT null,
    PRIMARY KEY (col1)
    );
Run Code Online (Sandbox Code Playgroud)

In my view, the numeric.mapping=best_fit could convert for COL2...COL5 into FLOAT64 (15 digits …

jdbc decimal avro apache-kafka apache-kafka-connect

6
推荐指数
0
解决办法
661
查看次数

Instagram API是否支持批量调用?

我必须进行两次api调用以获得追随者数量.因此,以每小时5000的速度,我每小时可获得2500个跟随者数!因此,要获得20000个追随者计数需要大约10个小时.Facebook和Twitter API都支持批量调用.那么,我想知道Instagram是否也支持批量通话?看看instagram文档,我没有看到任何批处理的概念!

谢谢,

batch-processing instagram-api

5
推荐指数
1
解决办法
535
查看次数

JACKSON 支持 Java 泛型吗?

目前,我正在研究一个基于架构的 restFul 项目。因此,我们使用 JAXB 进行 XSD-->JAVA 转换。我有一个类如下:

    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
     "systemResponse"
    })
    @XmlRootElement(name = "RestResponse")

public class RestResponse implements Serializable {

     private final static long serialVersionUID = 1L;
     @XmlElementRef(name = "SystemResponse", namespace = "http://www.intuit.com/psd/cdm/v1", type = JAXBElement.class)
   protected JAXBElement<? extends CdmComplexBase> systemResponse;

...
}
Run Code Online (Sandbox Code Playgroud)

这是它的序列化方式:

{"systemResponse":{"name":"{http://www.intuit.com/psd/cdm/v1}Transactions","declaredType":"com.intuit.psd.cdm.v1.Transactions","scope":"javax.xml.bind.JAXBElement$GlobalScope","value":{"requestId":null,"requestName":null,"isEncrypted":null,"totalCount":null,"pageSize":null,"genDuration":null,"genDateTime":null,"transaction":[{"id":null,"externalKey":[],"metaData":null,"accountNumber":"12345678798","transactionNumber":null,"transactionReference":null,"batchID":null,"batchCycleDate":null,"paymentType":null,"paymentMethod":null,"transactionType":null,"cardType":null,"amount":null,"transactionDate":null,"authCode":null,"customerTransactionID":null,"ccnumberFirstSix":null,"ccnumberLastFour":null,"etctype":null,"posentryType":null}]},"nil":false,"globalScope":true,"typeSubstituted":false}}
Run Code Online (Sandbox Code Playgroud)

尝试反序列化时,出现以下异常:

Exception in thread "main" com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class javax.xml.bind.JAXBElement<com.intuit.psd.cdm.v1.CdmComplexBase>]: can not instantiate from JSON object (need to add/enable type information?)
 at [Source: java.io.StringReader@725d9aa7; …
Run Code Online (Sandbox Code Playgroud)

json jettison jackson

4
推荐指数
1
解决办法
3368
查看次数

Spock mock返回错误的值

我有一个奇怪的用例,当我在'then:'部分中没有检查模拟类的两个调用时,spock mock返回正确的值,但是当我在'then:中包含两个检查时它返回0: ' 部分.这是模拟:

mockDao.readCounter(_, _, _, _, _) >> dbValue
Run Code Online (Sandbox Code Playgroud)

这是失败的'then:'部分:

1 * mockDao.readCounter(_, _, _, _, _)
// updateCounters is called with: sum = dbValue + value
1 * mockDao.updateCounter(namespace, date, key, min, shardID, dbValue + value)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,不是'dbValue',而是返回'0'.但如果我注释掉两个检查中的任何一个,那么它就会通过.因此,以下两种情况通过:

//1 * mockDao.readCounter(_, _, _, _, _)
// updateCounters is called with: sum = dbValue + value
1 * mockDao.updateCounter(namespace, date, key, min, shardID, dbValue + value)

OR

1 * mockDao.readCounter(_, _, _, _, _)
// updateCounters is called with: …
Run Code Online (Sandbox Code Playgroud)

groovy unit-testing mocking spock

4
推荐指数
1
解决办法
5728
查看次数