【发布时间】:2019-03-20 13:45:24
【问题描述】:
我正在尝试从 JSON 文本文件中读取简单数据并转换为 StringEntity 以用于 API POST 请求。虽然如果数据被硬编码为 StringEntity,我的 API 发布请求可以正常工作,但我正在努力成功解析数据。我用谷歌搜索的所有潜在解决方案都处理对我来说过于复杂的数组。
这是 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 响应,为什么要解析你已经拥有的 json?为什么不直接将文件作为文本读取并将该文本传递给
StringEntity? -
我想将 JSON 数据作为 StringEntity 发送到单独的远程 API。我正在构建的小程序是 2 个独立系统的中间人。我假设我需要将原始 json 文本文件解析为更可接受的 httpPost 格式
-
我不需要这样做吗?
-
嗯,json 应该是 json(如果它们都符合规范的话),至少文本文件中的数据和硬编码的数据似乎没有什么不同——除了一些空格差异这不应该是一个问题(如果他们是我怀疑这是换行符,但你应该能够删除这些)。您是否尝试将文件的内容直接传递给帖子?
-
你能发布堆栈跟踪吗?
标签: java string post filereader