Java字符串转换为http POST的JSON对象

时间:2016-07-29 22:36:03

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

我正在尝试重新创建一个使用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#将其作为类对象发送的方式不同,引号仅在属性名称周围而不是在值周围。

1 个答案:

答案 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();
}

取自:How to convert String to JSONObject in Java