আমি গসন শিখার চেষ্টা করছি এবং আমি মাঠের বাদ দিয়ে লড়াই করছি। এখানে আমার ক্লাস
public class Student {
private Long id;
private String firstName = "Philip";
private String middleName = "J.";
private String initials = "P.F";
private String lastName = "Fry";
private Country country;
private Country countryOfBirth;
}
public class Country {
private Long id;
private String name;
private Object other;
}
আমি জিসনবিল্ডারটি ব্যবহার করতে পারি এবং ফিল্ডের নামের জন্য একটি এক্সক্লুশনস্ট্র্যাজি যুক্ত করতে পারি firstName
বা country
তেমন কিছু ক্ষেত্রের বৈশিষ্ট্য বাদ দিতেও আমি পরিচালনা করতে পারি নাcountry.name
।
পদ্ধতিটি ব্যবহার করে public boolean shouldSkipField(FieldAttributes fa)
, ফিল্ডঅ্যাট্রিবিউটে ফিল্টারটির মতো ফিল্টারটির সাথে মিল রাখতে পর্যাপ্ত তথ্য নেইcountry.name
।
PS: আমি এটিকে উন্নত করতে এবং ক্ষেত্রগুলি ফিল্টার করার জন্য RegEx ব্যবহার করতে চাইলে আমি টীকাগুলি এড়াতে চাই।
সম্পাদনা : স্ট্রটস 2 জেএসএন প্লাগইনের আচরণ অনুকরণ করা সম্ভব কিনা তা দেখার চেষ্টা করছি
গসন ব্যবহার করে
<interceptor-ref name="json">
<param name="enableSMD">true</param>
<param name="excludeProperties">
login.password,
studentList.*\.sin
</param>
</interceptor-ref>
সম্পাদনা করুন: আমি নিম্নলিখিতটি যুক্ত করে আবার প্রশ্নটি খুললাম:
আমি এই সমস্যাটি আরও পরিষ্কার করতে একই ধরণের সাথে একটি দ্বিতীয় ক্ষেত্র যুক্ত করেছি। মূলত আমি বাদ দিতে চাই country.name
তবে চাই না countrOfBirth.name
। আমি দেশকে কোনও প্রকার হিসাবে বাদ দিতে চাই না। সুতরাং প্রকারগুলি একই হ'ল এটি অবজেক্ট গ্রাফের আসল জায়গা যা আমি পয়েন্টপয়েন্ট করতে এবং বাদ দিতে চাই।
JsonSerializer
কোনও প্রকারের জন্য একটি কাস্টম তৈরির উপর ভিত্তি করে - Country
আপনার ক্ষেত্রে - যার জন্য এমন একটি প্রয়োগ করা হয় ExclusionStrategy
যা কোন ক্ষেত্রকে সিরিয়ালায়িত করার সিদ্ধান্ত নেয়।