Skip to content

can't read field value through JsonProperty  #94

@inpot

Description

@inpot

here is the code,

String test ="{\"rs\":true,\"code\":200}";
TestEntity entity = JsonIterator.deserialize(test, TestEntity.class);
 Log.i(TAG, "testJsoniter2: " + entity.toString());
public class TestEntity {
    public String error;
    @JsonProperty(value = "rs", required = true)
    public boolean result;
    @JsonProperty(value = "code",required = true)
    public int code2;

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("code=");
        builder.append(code2);
        builder.append(" rs=");
        builder.append(result);
        return builder.toString();

    }
}

json-iterator can't read the custom field "last_modify", and throw an exception

07-31 15:45:30.271 30809-30809/com.jsoniter.test W/System.err: com.jsoniter.spi.JsonException: com.jsoniter.spi.JsonException: missing required properties: [rs, code]
07-31 15:45:30.272 30809-30809/com.jsoniter.test W/System.err: at com.jsoniter.ReflectionObjectDecoder$OnlyField.decode(ReflectionObjectDecoder.java:119)
07-31 15:45:30.272 30809-30809/com.jsoniter.test W/System.err: at com.jsoniter.JsonIterator.read(JsonIterator.java:369)
07-31 15:45:30.272 30809-30809/com.jsoniter.test W/System.err: at jsoniter.JsoniterResponseBodyConverter.convert(JsoniterResponseBodyConverter.java:44)
07-31 15:45:30.272 30809-30809/com.jsoniter.test W/System.err: at jsoniter.JsoniterResponseBodyConverter.convert(JsoniterResponseBodyConverter.java:30)
07-31 15:45:30.272 30809-30809/com.jsoniter.test W/System.err: at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:119)
07-31 15:45:30.272 30809-30809/com.jsoniter.test W/System.err: at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:218)
07-31 15:45:30.272 30809-30809/com.jsoniter.test W/System.err: at retrofit2.OkHttpCall.execute(OkHttpCall.java:180)
07-31 15:45:30.273 30809-30809/com.jsoniter.test W/System.err: at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:41)
07-31 15:45:30.273 30809-30809/com.jsoniter.test W/System.err: at io.reactivex.Observable.subscribe(Observable.java:10901)
07-31 15:45:30.273 30809-30809/com.jsoniter.test W/System.err: at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)
07-31 15:45:30.273 30809-30809/com.jsoniter.test W/System.err: at io.reactivex.Observable.subscribe(Observable.java:10901)
07-31 15:45:30.273 30809-30809/com.jsoniter.test W/System.err: at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96)
07-31 15:45:30.273 30809-30809/com.jsoniter.test W/System.err: at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:452)
07-31 15:45:30.273 30809-30809/com.jsoniter.test W/System.err: at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:61)
07-31 15:45:30.273 30809-30809/com.jsoniter.test W/System.err: at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:52)
07-31 15:45:30.273 30809-30809/com.jsoniter.test W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
07-31 15:45:30.273 30809-30809/com.jsoniter.test W/System.err: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
07-31 15:45:30.273 30809-30809/com.jsoniter.test W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
07-31 15:45:30.274 30809-30809/com.jsoniter.test W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
07-31 15:45:30.274 30809-30809/com.jsoniter.test W/System.err: at java.lang.Thread.run(Thread.java:761)
07-31 15:45:30.274 30809-30809/com.jsoniter.test W/System.err: Caused by: com.jsoniter.spi.JsonException: missing required properties: [rs, code]
07-31 15:45:30.274 30809-30809/com.jsoniter.test W/System.err: at com.jsoniter.ReflectionObjectDecoder$OnlyField.decode_(ReflectionObjectDecoder.java:165)
07-31 15:45:30.274 30809-30809/com.jsoniter.test W/System.err: at com.jsoniter.ReflectionObjectDecoder$OnlyField.decode(ReflectionObjectDecoder.java:117)
07-31 15:45:30.274 30809-30809/com.jsoniter.test W/System.err: ... 19 more

This is right as I'v used?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions