【问题标题】:Create a Json Array without the Json Array name创建一个没有 Json 数组名称的 Json 数组
【发布时间】:2021-10-25 00:53:17
【问题描述】:

我在没有数组名称的数组中创建 Json 输出时遇到问题。目前,当我创建一个时,我得到以下 Json 响应。

{
  "values": [
    {
      "item1": "",
      "item2": "",
      "item3": "",
      "item4": ""
    }
  ]
}

但我想删除以下内容:

{
  "values": [
  ]
}

最终结果如下所示:

[
   {
      "item1": "",
      "item2": "",
      "item3": "",
      "item4": ""
   },
   {
      "item1": "",
      "item2": "",
      "item3": "",
      "item4": ""
   }
]

这是我目前正在使用的代码。

JSONArray jsonArray = new JSONArray();
jsonArray.put(new File(getFileName(base64), MimeTypes.ContentType(FileExtension.getType(base64)), folder, convertUriToBase64(), null));

Log.d(TAG, JsonUtil.toJson(jsonArray));

这是我的模型类:

public class File {

    String fileName;
    int fileType;
    String fileFolder;
    String base64String;
    byte[] bytes;

    public File(String fileName, int fileType, String fileFolder, String base64String, byte[] bytes){
        this.fileName = fileName;
        this.fileType = fileType;
        this.fileFolder = fileFolder;
        this.base64String = base64String;
        this.bytes = bytes;
    }
}

任何帮助都会很有用,谢谢!

【问题讨论】:

  • 你试过jsonArray.toString()吗?
  • @digitalbreed 是的,它不返回有效的 json,而是返回 ["com.package.name.File@d917cac"]
  • 好吧,你把File放进去,这不是一个有效的JsonElement
  • @digitalbreed 'File' 是一个自定义模型类。
  • @digitalbreed 我更新了问题,所以你知道我的意思

标签: android arrays json android-studio gson


【解决方案1】:

不要将 JSON 元素与您自己的模型混合使用。这是一个使用Gson.toJson 的示例,它产生了预期的结果:

package test;

import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;

public class GsonTest {

    // Your model class
    public static class Test {
        private int x;
        private int y;
        public Test(int x, int y) {
            this.x = x;
            this.y = y;
        }
    }

    public static void main(String[] args) {
        List<Test> list = new ArrayList<>();
        list.add(new Test(1, 2));
        list.add(new Test(2, 3));
        System.out.println(new Gson().toJson(list));

        // output: [{"x":1,"y":2},{"x":2,"y":3}]

    }

}

【讨论】:

  • 它工作得很好,谢谢你,如果我可能会问一个人如何获得让我们说列表中的 2-10 个项目。例如,当您在 Facebook 上创建帖子时,您可以在帖子中添加一定数量的图像,您将如何获取所有这些图像数据并将其添加到 ArrayList?
  • @Tihan-NicoPaxton 不确定“获取所有这些图像数据”是什么意思,但如果您询问构建一个类似的过程,包括文件选择、预览、裁剪、上传、存储、安全,...这可能有点太多了,无法在一个 SO 问题中回答。
  • 假设您要发布多张图片并将其上传到存储服务,您将如何获取所有这些图片数据并将其添加到 Json Arraylist 中。例如:'List posts = new ArrayList(); post.add(new Post("data"));'但是,如果有意义的话,您将如何将所有它们组合在一起并将其添加为一个,而不是添加全部时间?
猜你喜欢
  • 2020-08-09
  • 1970-01-01
  • 2020-01-08
  • 1970-01-01
  • 2016-09-10
  • 2013-06-11
  • 2017-06-10
  • 1970-01-01
  • 2016-04-06
相关资源
最近更新 更多