আমি বর্তমানে জ্যাকসন ২.১.৪ ব্যবহার করছি এবং যখন আমি কোনও জেসসন স্ট্রিংয়ে কোনও অবজেক্টটি রূপান্তর করছি তখন ক্ষেত্রগুলি উপেক্ষা করার ক্ষেত্রে আমার কিছুটা সমস্যা হচ্ছে।
এখানে আমার ক্লাস যা রূপান্তরিত করার জন্য বস্তু হিসাবে কাজ করে:
public class JsonOperation {
public static class Request {
@JsonInclude(Include.NON_EMPTY)
String requestType;
Data data = new Data();
public static class Data {
@JsonInclude(Include.NON_EMPTY)
String username;
String email;
String password;
String birthday;
String coinsPackage;
String coins;
String transactionId;
boolean isLoggedIn;
}
}
public static class Response {
@JsonInclude(Include.NON_EMPTY)
String requestType = null;
Data data = new Data();
public static class Data {
@JsonInclude(Include.NON_EMPTY)
enum ErrorCode { ERROR_INVALID_LOGIN, ERROR_USERNAME_ALREADY_TAKEN, ERROR_EMAIL_ALREADY_TAKEN };
enum Status { ok, error };
Status status;
ErrorCode errorCode;
String expiry;
int coins;
String email;
String birthday;
String pictureUrl;
ArrayList <Performer> performer;
}
}
}
এবং আমি এখানে এটি কীভাবে রূপান্তরিত করেছি:
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
JsonOperation subscribe = new JsonOperation();
subscribe.request.requestType = "login";
subscribe.request.data.username = "Vincent";
subscribe.request.data.password = "test";
Writer strWriter = new StringWriter();
try {
mapper.writeValue(strWriter, subscribe.request);
} catch (JsonGenerationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d("JSON", strWriter.toString())
এখানে ফলাফল:
{"data":{"birthday":null,"coins":null,"coinsPackage":null,"email":null,"username":"Vincent","password":"test","transactionId":null,"isLoggedIn":false},"requestType":"login"}
আমি কীভাবে এই নালাগুলি এড়াতে পারি? আমি কেবল "সাবস্ক্রিপশন" উদ্দেশ্যে প্রয়োজনীয় তথ্য নিতে চাই!
আমি ঠিক যে আউটপুটটি খুঁজছি তা এখানে:
{"data":{"username":"Vincent","password":"test"},"requestType":"login"}
আমি @ জসনআইনক্লুডও (অন্তর্ভুক্ত করুন। NON_NULL) চেষ্টা করেছিলাম এবং আমার সমস্ত ভেরিয়েবলগুলি বাতিল করে দিয়েছি, তবে এটি কার্যকর হয়নি! আপনার সাহায্যের জন্য ধন্যবাদ বন্ধুরা!