当调用特定的 API时,是否可以在Json中仅返回特定字段。我使用了“transient”:但这将是Object级别,因此适用于所有API调用。
示例:完整的Json是
[{"field1":"a","field2":"b","field3":"c"},{"field1":"d","field2":"e","field3":"f"},{"field1":"g","field2":"h","field3":"i"}]
根据对特定用户的API调用,“json输出”特定于API调用。根据API调用,它可以是以下任何一种。
[{"field1":"a"},{"field1":"d"},{"field1":"g"}]
OR
[{"field2":"b"},{"field2":"e"},{"field2":"h"}]
OR
[{"field3":"c"},{"field3":"f"},{"field3":"i"}]
或以上的组合。
E.g。以上示例的代码如下所示。
public class childObj {
public String field1;
public String field2;
public String field3;
public childObj(String field1, String field2, String field3) {
super();
this.field1 = field1;
this.field2 = field2;
this.field3 = field3;
}
}
主类定义如下:
import java.util.ArrayList;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class ParentAndChildObjects {
public static void main(String[] args) {
ArrayList<childObj> childObjList = new ArrayList<childObj>();
childObjList.add(new childObj("a","b","c"));
childObjList.add(new childObj("d","e","f"));
childObjList.add(new childObj("g","h","i"));
Gson gson = new GsonBuilder().create();
String myString = gson.toJson(childObjList);
System.out.println(myString);
}
}
答案 0 :(得分:0)
如果你使用Java中的标准JSON库Jackson,你可以使用@View注释来过滤你想要的结果对象。
对于动态选择,您必须根据您的要求使用特定注释。此链接可以帮助您 - &gt; http://www.cowtowncoder.com/blog/archives/2011/02/entry_443.html
例如,对于完全动态过滤,请查看@JsonFilter
的使用