POST数组中JSON字符串的结构是什么

时间:2014-03-06 10:02:17

标签: java json apache-httpclient-4.x jettison

这是我尝试将JSON对象发送到服务器的Java程序。我正在使用Apache HTTPClient进行HTTP请求,将Jettison用作JSON库。

我对此几乎没有疑问。

  1. POST数组中JSON字符串的结构是什么。像{xxxxx:{userId:userId, blha, blha, blha.........}}

  2. 之类的东西
  3. 如果我需要从服务器端的POST数组中获取JSON字符串(无需转换为对象)。怎么做?在php中我们喜欢这个echo $_POST["xxxxxxx"];

  4. 通常,POST数组中的每个数据都有一个名称。但是在程序之下并没有为JSON对象指定任何名称。 POST数组中以下JSON字符串的名称(xxxxxxx)是什么。


  5. string base_url = "https://abc.com/";
    string username = "test_user";
    string password = "test_user_pw";
    string client_id = "test_user123";
    string client_secret = "test_user1234567";
    string login_url = base_url + "session/login";
    
    CloseableHttpClient wf_client = HttpClients.custom().setUserAgent(client_id + "/1.0").build();
    HttpPost login_post = new HttpPost(loginUrl);
    JSONObject login_object = new JSONObject();
    try {
        login_object.put("userId", username);
        login_object.put("password", password);
        login_object.put("clientId", client_id);
        login_object.put("clientSecret", client_secret);
    } catch (JSONException ex) {
        System.out.println(ex.toString());
    }
    
    StringEntity post_entity = new StringEntity(login_object.toString(), jason_content_type);
    login_post.setEntity(post_entity);
    CloseableHttpResponse responce = wf_client.execute(login_post);
    

1 个答案:

答案 0 :(得分:0)

按照相同的结构回答您的问题

  • 你是对的,这是JSON字符串的结构。确切的语法可以在JSON.org website
  • 中找到

示例:

{ 
   "userId" : "Username",
   "array"  : [ "1", "2", "3" ],
   "object" : {
      "objectId" : "bkadakdbk",
      ...
   }
}
  • 在Java中,您必须读取服务器端HTTP协议中的数据(通常是servlet):

示例:

BufferedReader rd = new BufferedReader(new InputStreamReader(request.getInputStream()));
StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
    result.append(line);
}
  • 在Java中,当你发出类似的POST请求时,你通常会发送JSON对象作为请求的内容,所以服务器端没有参数数组,这就是为什么你必须阅读请求本身的内容如我之前的例子。