【问题标题】:Java string convert to JSON object for http POSTJava 字符串转换为用于 http POST 的 JSON 对象
【发布时间】:2016-07-29 22:36:02
【问题描述】:

我正在尝试重新创建一个 http Post 请求以使用 webAPI。我最初在 C# 中创建它并让它工作。但是类似的 java 似乎给了我一些...

我的输入字符串由 webapi 预期的参数组成。

       String input = "{" +
                "\"UserID\":xxx," +
                "\"UserPsw\":\"yyy," +
                "\"ApiFunction\":zzz," +
                "\"DppName\":aaaa," +
                "\"DppVersion\":Latest, " +
                "\"ClearData\"ftfdgfdgfdg fdgfdgfd 4354534," +
                "\"ResultType\":JSON \"}";

现在我从以下位置下载了 JSON-simple jar 文件:- https://code.google.com/archive/p/json-simple/downloads

并将其导入我的库文件夹中以用于 java 项目。

然后对于我的 main.java 类,我导入了以下内容:-

import org.json.simple.JSONObject;

目的是将我的“输入”字符串转换为 JSON 对象:-

 JSONObject jsonObject = new JSONObject(input);

但我收到一条错误消息:-

cannot find symbol
  symbol:   constructor JSONObject(java.lang.String)
  location: class org.json.simple.JSONObject

我做错了什么?

我想将其转换为 JSON 对象的原因是因为我的 webapi 需要特定格式的字符串...

{"UserID":xx,"UserPsw":yyy,"ApiFunction":zzz,"DppName":aaaa,"DppVersion":Latest, "ClearData":ftfdgfdgfdg fdgfdgfd 4354534,"ResultType":JSON "}

但是我的 java 字符串输入格式为:-

{"UserID":"xx","UserPsw":"yyy","ApiFunction":"zzz","DppName":"aaaa","DppVersion":"Latest", "ClearData":"ftfdgfdgfdg fdgfdgf 4354534","ResultType":"JSON"}

这与 C# 将其作为类对象发送的方式不同,该类对象仅在属性名称周围而不是值周围加引号。

【问题讨论】:

  • {"UserID":xx,"UserPsw":yyy... 不是有效的 JSON。
  • 它不是......正如我提到的......在 C# 中......它是作为类对象发送的。以这种方式格式化它。

标签: java json asp.net-web-api


【解决方案1】:

根据文档

http://juliusdavies.ca/json-simple-1.1.1-javadocs/org/json/simple/JSONObject.html

没有接受String 作为参数的构造函数。您可以考虑将其转换为 Map,这样会更清晰,更不容易出错。

 HashMap<String,String> newMap = new HashMap<>();
 newMap.put("UserID","xxx");
 //... the rest of your attributes
 JSONObject jsonObject = new JSONObject(newMap);

根据“Mappan”的建议,您也可以使用 JSONParser:

try {
  JSONParser parser = new JSONParser();
  JSONObject json = (JSONObject) parser.parse(stringToParse);
} catch (org.json.simple.parser.ParseException e) {
   e.printStackTrace();
}

取自:How to convert String to JSONObject in Java

【讨论】:

  • 我想做这样的事情stackoverflow.com/questions/5245840/…
  • 不允许我像 Mappan 指出的那样格式化我的字符串。试过了..还有,看看charu的回答
  • 未报告的异常 org.json.simple.parser.ParseException;必须在调用 JSON 对象的第二行中捕获或声明被抛出...
  • 好的 :-) 这是一个例外,你需要抓住它。我会编辑我的帖子。
猜你喜欢
  • 2017-03-24
  • 2011-08-30
  • 1970-01-01
  • 2019-10-13
  • 1970-01-01
  • 1970-01-01
  • 2020-05-04
  • 2021-09-18
  • 1970-01-01
相关资源
最近更新 更多