关于jsonarray顺序问题

eagllle 2016-08-22 04:11:59

public String Pdf(String fileName,String content){
PdfFiles pdf=new PdfFiles();
pdf.setContent(content);
pdf.setFileName(fileName);
JSONArray js = new JSONArray();
js= JSONArray.fromObject(pdf);
return js.toString();
}


public class PdfFiles {
private String fileName;
private String content;

public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
}


返回的时候会按照get方法名a~z的顺序返回
[{"content":"22","fileName":"11"}]
有办法改变返回顺序么
我想要的返回值是这样的
["fileName":"11"},{"content":"22"}]
...全文
2566 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
freekaiQaQ 2016-08-22
  • 打赏
  • 举报
回复
上面的那个谷歌json, 是和你实体类声明变量的顺序有关。
freekaiQaQ 2016-08-22
  • 打赏
  • 举报
回复
引用 2 楼 eagllle 的回复:
[quote=引用 1 楼 freekaiQaQ 的回复:]
//亲测可用 [{"fileName":"xx","content":"12345"}]

public static String Pdf(String fileName,String content){
PdfFiles pdf=new PdfFiles();
pdf.setContent(content);
pdf.setFileName(fileName);
JSONObject j=new JSONObject();
j.put("fileName", fileName);
j.put("content", content);
JSONArray js1 = new JSONArray();
js1.add(j);
return js1.toString();
}


不是为了单纯的拼接,构建个实体类是为了实现支持多数据拼接
这样
[{"fileName":"xx","content":"12345"},{"fileName":"xxx","content":"123456"}][/quote]

----------------------------------------------------------------------------------------------------------------------------
public static String Pdf(String fileName,String content){
PdfFiles pdf=new PdfFiles(fileName,content);
/* pdf.setContent(content);
pdf.setFileName(fileName);*/

JSONArray js1 = new JSONArray();
js1.add(pdf);
return js1.toString();
}

public static void main(String[] args) {
System.out.println(Pdf("1","1"));
PdfFiles pdf=new PdfFiles();
pdf.setContent("content");
pdf.setFileName("fileName");
String json=new Gson().toJson(pdf);//谷歌的一个json包
System.out.println(json);
}
//这是输出 ,下面应该是满足你的需求吧。
[{"content":"1","fileName":"1"}]
{"fileName":"fileName","content":"content"}
eagllle 2016-08-22
  • 打赏
  • 举报
回复
引用 1 楼 freekaiQaQ 的回复:
//亲测可用 [{"fileName":"xx","content":"12345"}] public static String Pdf(String fileName,String content){ PdfFiles pdf=new PdfFiles(); pdf.setContent(content); pdf.setFileName(fileName); JSONObject j=new JSONObject(); j.put("fileName", fileName); j.put("content", content); JSONArray js1 = new JSONArray(); js1.add(j); return js1.toString(); }
不是为了单纯的拼接,构建个实体类是为了实现支持多数据拼接 这样 [{"fileName":"xx","content":"12345"},{"fileName":"xxx","content":"123456"}]
freekaiQaQ 2016-08-22
  • 打赏
  • 举报
回复
//亲测可用 [{"fileName":"xx","content":"12345"}] public static String Pdf(String fileName,String content){ PdfFiles pdf=new PdfFiles(); pdf.setContent(content); pdf.setFileName(fileName); JSONObject j=new JSONObject(); j.put("fileName", fileName); j.put("content", content); JSONArray js1 = new JSONArray(); js1.add(j); return js1.toString(); }

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧