当前位置: 首页 > 知识库问答 >
问题:

如何从文件中读取一个Json字符串?

微生嘉祥
2023-03-14

我需要将对象保存在一个文件中。我使用GSON库。写入文件很容易,但是读取很复杂。我一个接一个地读取整个文件,但是这个解决方案效率很低。如何只读取一个JSON字符串?我不知道如何做得更好。请帮帮我。谢谢你

File file = new File(getContext().getFilesDir(), "slovicka.json");
        try (BufferedReader br = new BufferedReader(new FileReader(file))) {
            char s;
            char z = '{';
            char z2 = '}';
            int zavorky = 0;
            String j = "";
            p = 0;
            while (true) {
                s = (char) br.read();
                if (s == z) {
                    zavorky++;
                }
                if (s == z2) {
                    zavorky--;
                }
                j = j + s;
                if (zavorky == 0) {
                    Gson gson = new Gson();
                    SlovickoS slovos = gson.fromJson(j, SlovickoS.class);
                    list.add(slovo);
                    j = "";

                }
                
            }
        } catch (Exception e) {
            System.out.println("Chyba při čtení ze souboru.");
        }

共有1个答案

暴绪
2023-03-14

您可以将JsonReader与文件阅读器一起使用。

JsonReader reader = new JsonReader(new FileReader(filename));
SlovickoS slovos = gson().fromJson(reader, SlovickoS.class); 
list.add(slovos);
 类似资料:
  • 问题内容: 我想一次从文件中读取一个数字列表作为一个字符,一次检查一个字符,以检查该字符是什么,是否是数字,句点,+或-,e或E或其他一些字符。 ..然后基于此执行我想要的任何操作。如何使用已有的现有代码执行此操作?这是我尝试过的示例,但是没有用。我是python的新手。提前致谢! 问题答案: 从文件中读取行。以文本块的形式读取整个文件,然后遍历文本的每个字符:

  • 问题内容: 谁能告诉我该怎么做? 问题答案:

  • 我正在寻找一种在读取字节(作为字节[])和从文件中读取字符串行之间切换的方法。我知道字节[]可以通过FileInputStream从文件中获取,字符串可以通过BufferedReader获取,但同时使用这两个字节是有问题的。我知道字节段有多长。当我写文件时,字符串编码可以保持不变。该文件类型是一个仍在开发中的自定义文件类型,因此我可以更改向其写入数据的方式。 我怎么能读取字符串和字节[]s从相同的

  • 我正在使用python,我有一个文件(

  • 问题内容: 我有一些要解析的大型json文件,我想避免一次将所有数据加载到内存中。我想要一个可以一次返回每个字符的函数/循环。 我发现这个示例可以遍历字符串中的单词,而bufio包中的ScanRunes函数似乎可以一次返回一个字符。我也有bufio提供的功能,大多数情况下都可以正常工作,但是感觉很沉重。 编辑 我比较了3种方法。全部使用循环从bufio.Reader或bufio.Scanner中提

  • 问题内容: 只是因为一个简单,易于表达的陈述使我的脸上有些错误,所以我有点头疼。 我有一个名为strings.json的json文件,如下所示: 我现在想读取json文件。我发现了以下这些语句,但是不起作用: 控制台上显示的错误是这样的: 已编辑 从更改为 并得到了这个: 问题答案: 该方法(“ load”中没有“ s”)可以直接读取文件: 您正在使用方法,该方法仅用于 字符串 参数。 编辑:新消