我正在尝试重新创建一个使用webAPI的http Post请求。我最初是用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项目的library文件夹中。
然后对于我的main.java类,我导入了以下内容: -
import org.json.simple.JSONObject;
目的是转换我的输入'将字符串转换为JSON onbject: -
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#将其作为类对象发送的方式不同,引号仅在属性名称周围而不是在值周围。
答案 0 :(得分:0)
根据文档
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&#39;提出的那样。你也可以使用JSONParser:
try {
JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(stringToParse);
} catch (org.json.simple.parser.ParseException e) {
e.printStackTrace();
}