java - 从文件中读取 JSON 数据以在 StringEntity 中使用

标签 java string post filereader

我正在尝试从 JSON 文本文件读取简单数据并转换为 StringEntity 以在 API POST 请求中使用。虽然如果数据被硬编码为 StringEntity,我的 API post 请求可以正常工作,但我很难成功解析数据。我在谷歌上搜索到的所有潜在解决方案都涉及数组,这对我来说使事情变得过于复杂。

以下是 JSON 文本文件的示例:

{
"data":"d1",
"data2":"d2",
"data3":"d3"
}

这是我用来尝试导入数据的代码。

JSONParser parser = new JSONParser();
    JSONObject a = new JSONObject();
    try {
        FileReader fileReader = new FileReader("/directory/file.json");
        a = (JSONObject) parser.parse(fileReader);
        } catch (Exception e1) {
        e1.printStackTrace();
        }
String data = a.toString();
StringEntity entity = new StringEntity(data);   
entity.setContentType(ContentType.APPLICATION_JSON.getMimeType());
request.addHeader("Accept", acceptHeader);
    request.setEntity(entity);
    HttpResponse response = client.execute(request);

我觉得我在某个地方真的很愚蠢。我是新手。当它工作时,StringEntity 是这样硬编码的,所以这就是我需要导入和解析它的方式:

StringEntity entity = new StringEntity("{\"data\":\"d1\",\"data2\":\"d2\",\"data3\":\"d3\"}");

使用的类:

import org.json.JSONObject;
import org.json.JSONArray;
import org.json.simple.parser.JSONParser;

最佳答案

以防万一其他人感兴趣...最终得到以下解决方案,因为不需要解析或格式化 JSON:

String data;
data = new String(Files.readAllBytes(Paths.get("file.json")));

需要的库:

import java.nio.file.Paths;
import java.nio.file.Files;

关于java - 从文件中读取 JSON 数据以在 StringEntity 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55262232/

相关文章:

http - 有什么方法可以通过 HTTP POST 请求访问 RabbitMQ?

java - 算法 - 如何有效地删除列表中的重复元素?

java - Intent.ACTION_GET_CONTENT 和 Intent.ACTION_PICK 之间的区别

java - JfreeChart XYPlot 放大/缩小后卡住

java - 如何在 Java 中比较字符串?

python - Django - 编辑 HTML 表行并更新数据库

java - 使用 Facebook GRAPH API 删除 Facebook 发布的消息? (适用于安卓)

mysql - Visual Studio 中 MySQL 的连接字符串

java - 将单个字符重复到字符数组。设置数组的长度以匹配字符串所需的长度

jQuery AJAX POST 变成 GET