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

将从文件读取的字符串转换为JSONObject android

云宜人
2023-03-14

我已经创建了一个JSONObject并将值放入其中,如下所示。然后我把我的对象“h”转换成字符串,用那个字符串在sdcard里写一个文件。

JSONObject h = new JSONObject();
    try {
        h.put("NAme","Yasin Arefin");
        h.put("Profession","Student");
    } catch (JSONException e) {
        e.printStackTrace();
    }
String k =h.toString();

writeToFile(k);

文件中,我看到的文本格式如下。

{"NAme":Yasin Arefin","Profession":"Student"}

我的问题是,如何读取那个特定的文件并将那些文本转换回JSONObject?

共有1个答案

阳念
2023-03-14

要读取文件,您有2个选项:

使用< code>BufferReader阅读,您的代码将如下所示:

//Path to sdcard
File sdcard = Environment.getExternalStorageDirectory();
//Load the file
File file = new File(sdcard,"file.json");
//Read text from file
StringBuilder text = new StringBuilder();
try {
    BufferedReader br = new BufferedReader(new FileReader(file));
    String line;
    while ((line = br.readLine()) != null) {
        text.append(line);
        text.append('\n');
    }
    br.close();
}
catch (IOException e) {
    //You'll need to add proper error handling here
}

选项2是使用库,如< code>Okio:

在你的Gradle文件中添加库

implementation 'com.squareup.okio:okio:2.2.0'

然后在您的活动中:

StringBuilder text = new StringBuilder();  
try (BufferedSource source = Okio.buffer(Okio.source(file))) {
 for (String line; (line = source.readUtf8Line()) != null; ) {
  text.append(line);
  text.append('\n'); 
 }
}
 类似资料:
  • 我需要在android中以字符串的形式加载一个xml文件,以便将其加载到TBXML xml解析器库并对其进行解析。我现在必须以字符串形式读取文件的实现需要大约2秒,即使对于一些KBs的非常小的xml文件也是如此。在Java/Android中,有没有已知的快速方法可以将文件读取为字符串? 这是我现在拥有的代码:

  • 如何读取文件并从json转换为字符串?示例:我的文件编号为。json[“23423423”,“234234234”,“53453453”] 我想要的是:String numbers=“'23423423','234234234','53453453'”;

  • 问题内容: 如何在不使用?的情况下逐行读取文本文件的内容? 例如,我有一个文本文件,里面看起来像这样: 我想创建两个,然后使用类似这样的东西 这样,它分配的价值,以及价值。 问题答案: 您应该使用。 然后,您可以从下一个索引中访问列表的一个特定元素: 这将给您第一行(即:Purlplemonkeys)

  • 问题内容: 我正在尝试将base64图像字符串转换为图像文件。 使用以下代码将其转换为图像文件: 但是我遇到了错误,这是怎么了? 问题答案: 问题是编码内容中包含该内容。当base64函数对其进行解码时,这将导致无效的图像数据。像这样在解码字符串之前先删除函数中的数据。

  • 问题内容: 如何将经典字符串转换为f字符串? 输出: 所需的输出: 问题答案: f字符串是 语法 ,而不是对象类型。您不能将任意字符串转换为该语法,该语法会创建一个字符串对象,而不是相反。 我假设您想用作模板,因此只需在对象上使用方法: 如果要提供可配置的模板服务,请创建一个包含所有可以插值的字段的名称空间字典,并与调用语法一起使用以应用名称空间: 然后,用户可以在字段中的名称空间中使用任何键(或

  • 问题内容: Oracle Java Community网站上的一篇文章提供了以下方法作为示例(对于JPA Converter,但这并不相关): 将String y强制转换为String val有什么用?有正当的理由吗? 原始文章:JPA的新增功能 问题答案: 这样的转换是完全没有必要的。我可以想象那是以前 但是后来参数类型更改为,而作者只是忘了删除强制类型转换。

  • 问题内容: 我正在尝试处理其中某些字段为格式日期的CSV文件-但当读者尝试将String从CSV文件转换为我的模型类中的Date时,阅读器失败。 错误是: org.springframework.validation.BindException:org.springframework.validation.BeanPropertyBindingResult:1错误字段’datetimeInacti

  • 问题内容: 我能够从发送消息到上。如果我从发送消息,则使用任何可访问性(包括完整的语言本地化)都没有区别;英语也没有问题。正确的编码很重要,只有以下代码行: 不幸的是,这是无效的。我要从中获取消息的情况有所不同。 在我得到消息的情况下,从Windows操作系统(英语,没有任何语言包),我能够把消息来自于形式。 如果Windows操作系统使用某些语言包进行了完全本地化,则我将收到一个例外 消息缓冲区