我将应用程序内购买的状态存储在Application.Properties(Xamarin)中。 每次发布更新时,我发现我的应用程序正在报告iOS上的幻影购买(通过我的分析包)。 对于这种行为,我唯一的好解释是没有保留Application.Properties。 因此,更新后的应用程 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我正在开发一个springboot应用程序。
我有一个 class 具有以下字段
class MyClass
{
String s1;
String s2;
String s3;
String s4;
//getters setters constructors
}
我正在调用 API ,后者又调用服务。
public String myService()
{
JSONArray arr1 = new JSONArray();
for (Items item : itemsList)
{
JSONObject itemObj = new JSONObject();
itemObj.put("s1","Value1");
itemObj.put("s2","Value2");
itemObj.put("s3","Value3")
itemObj.put("s4","Value4");
arr1.put(itemObj);
}
JSONObject out = new JSONObject();
out.put("total_Items", arr1);
return out.toString(); // this is org.json.JSONObject
}
这样,当在前端 angular 应用程序上单击按钮时,我可以获得 excel 和重新排序的成员作为列。
我想要的是在导出到 excel 工作表时保留列中成员的顺序。
s1|s2|s3|s4 //按照上面的例子
我还有许多其他服务,它们返回不同类型的对象(除了这里提到的 MyClass),所以我想从后端本身按定义的顺序(根据类中成员的顺序)返回元素。
我知道 JSON 不允许我们保留订单,因为它在内部使用 HASHMAP。
有没有办法返回 JSON 响应,以便顺序与 class 成员的顺序相同?
我还尝试通过以下方式使用 GSON。
public String myService()
{
MyClass itemsArray[] = new MyClass[itemsList.size()];
int i=0;
for (Items item : itemsList)
{
MyClass itemObj = new MyClass();
itemObj.setS1("Value1");
itemObj.setS2("Value2");
itemObj.setS3("Value3")
itemObj.setS4("Value4");
itemsArray[i]=itemObj;
}
Gson gson = new Gson();
return gson.toJson(itemsArray); // this is java.lang.String
}
在这种情况下,我能够以有序的方式获得 API 响应(在 POSTMAN 上),但在前端 angular 应用程序上导出时,它会在下载屏幕上冻结。
我尝试随机转换为 JSONObject 和其他东西,但无法使代码正常工作。
无论如何,问题可以在后端解决......还是只需要在前端完成一些事情?
提前致谢。
这可以通过使用 @JsonPropertyOrder 注释的 Jackson 库来完成。
您可以定义元素的顺序,如下所示 class @JsonPropertyOrder({ "s3", "s2", "s1", "s4"})
请参阅下面的工作示例
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sun.istack.NotNull;
import java.io.IOException;
import java.util.UUID;
@JsonPropertyOrder({ "id", "password", "name", "email", "enabled" })
public class UserResource {
private UUID id;
@NotNull
private String name;
@NotNull
private String email;
private boolean enabled;
private String password;
public UserResource(UUID id, String name, String email, boolean enabled, String password) {
this.id = id;
this.name = name;
this.email = email;
this.enabled = enabled;
this.password = password;
}
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public static void main(String args[]){
ObjectMapper mapper = new ObjectMapper();
try {
UserResource student = new UserResource(UUID.randomUUID(), "sheel", "sheel@c4c.com",true, "$$$$$$%%##^^$DSGHHH");
String jsonString = mapper
.writerWithDefaultPrettyPrinter()
.writeValueAsString(student);
System.out.println(jsonString);
}
catch (IOException e) {
e.printStackTrace();
}
}
}
和 output 如下所示
{
"id" : "fbfcd21d-731e-4acb-9fec-90a499e47cc9",
"password" : "$$$$$$%%##^^$DSGHHH",
"name" : "sheel",
"email" : "sheel@c4c.com",
"enabled" : true
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.