Android 如何在字符串中解析JsonObject的JsonObject并使用urlconnection发送post请求?

Android 如何在字符串中解析JsonObject的JsonObject并使用urlconnection发送post请求?,android,json,post,httpurlconnection,urlconnection,Android,Json,Post,Httpurlconnection,Urlconnection,我有一个web服务,在其中我必须用Json传递参数。但问题是jsonObject有一个键是jsonObject类型的,而jsonObject有一个键又是子类型的。 这是相当混乱,但我可以告诉你我的儿子对象的最终结果 { "Id": 1, "Company": "BMW", "Category": { "ID": 1, "Transmission": 1, "Fuel": 2, "Description": {

我有一个web服务,在其中我必须用Json传递参数。但问题是jsonObject有一个键是jsonObject类型的,而jsonObject有一个键又是子类型的。 这是相当混乱,但我可以告诉你我的儿子对象的最终结果

{
    "Id": 1,
    "Company": "BMW",
    "Category": {
        "ID": 1,
        "Transmission": 1,
        "Fuel": 2,
        "Description": {
            "Price": 1200000,
            "Year": 2016
        }
    }
}
现在我想用URL连接发送它。我该怎么办

我用description、Category和final-son创建了3个Json对象,然后用toString()将其转换为字符串。使用“Category”键在Category和Category中放置描述,但其不工作的服务器给出错误

我对安卓非常陌生,对它不太了解。任何建议都是有用的


编辑我已经尝试过了,但仍然没有解决我的问题。

如果您想使用URLConnection。。 您可能想要查看此线程


我的第一个建议是使用一个用于http通信的库:

  • 截击
  • OkHttp
  • 改造等
  • 他们将为您处理json

    如果仍要使用该httpUrlConnection:

    URL url = new URL("http://yoururl.com");
    HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
    conn.setReadTimeout(10000);
    conn.setConnectTimeout(15000);
    conn.setRequestMethod("POST");
    conn.setDoInput(true);
    conn.setDoOutput(true);
    
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("firstParam", paramValue1));
    params.add(new BasicNameValuePair("secondParam", paramValue2));
    params.add(new BasicNameValuePair("thirdParam", paramValue3));
    
    conn.connect();
    
    URL=新URL(“http://yoururl.com");
    HttpsURLConnection conn=(HttpsURLConnection)url.openConnection();
    连接设置读取超时(10000);
    连接设置连接超时(15000);
    conn.setRequestMethod(“POST”);
    conn.setDoInput(真);
    连接设置输出(真);
    List params=new ArrayList();
    参数添加(新的BasicNameValuePair(“firstParam”,paramValue1));
    参数添加(新的BasicNameValuePair(“secondParam”,paramValue2));
    参数添加(新的BasicNameValuePair(“第三参数”,参数3));
    连接();
    

    这就是你如何给它增值的方法。现在,您可以添加json.toString()作为参数,并为其提供一个由服务器标识的正确密钥

    我不想解析。我想在urlrequest中发送它。@M Swapnil ah ok明白了。如果您正在使用REST web服务,为什么不试试呢。它非常简单,代码更少,效率更高。它看起来很复杂。但我现在就试试。这些教程可能会对您有所帮助:1)2)