如何以POST形式提交JSON数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何以POST形式提交JSON数据相关的知识,希望对你有一定的参考价值。

参考技术A 很高兴为您解答,方法好下:
import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONStringer;

import android.util.Log;

public class JSON

//========================================================================
/**
* <b><p> retrieveJSONArray(ArrayList<</String[]>> jsonArray)</b></p>
*
* <ul><li>Returns JSON formed Array from the ArrayList provided.</li>
* <li><b>jsonArray</b> will be ArrayList of array.</li>
* <li>the elements provided in array will be arranged in consecutive keys</li>
* <li>ex:<b> ["key0","1st element of array","key1","2nd element of array"]</b> </li>
* </ul>
*/
//========================================================================
public static String retrieveJSONArray(ArrayList<String[]> jsonArray)

try

String[] jsonObject=new String[2];
JSONStringer stringer=new JSONStringer();

stringer.array();

int arrayLength=jsonArray.size();

for(int i=0;i<arrayLength;i++)

jsonObject=jsonArray.get(i);

stringer.object();

for(int j=0;j<jsonObject.length;j++)
stringer.key("key"+j).value(jsonObject[j]);

stringer.endObject();


stringer.endArray();

return stringer.toString();

catch(Exception e)

e.printStackTrace();

return null;


//========================================================================
/**
* <b><p> retrieveJSONArray(ArrayList<</String[]>> jsonArray,String[] key)</b></p>
*
* <ul><li>Returns JSON formed Array from the ArrayList provided.</li>
* <li><b>jsonArray</b> will be ArrayList of array.</li>
* <li>the elements provided in array will be arranged in consecutive keys</li>
* <li>ex:<b> ["key[0]","1st element of array","key[1]","2nd element of array"]</b> </li>
* </ul>
*/
//========================================================================
public static String retrieveJSONArray(ArrayList<String[]> jsonArray,String[] key)

try

String[] jsonObject=new String[2];
JSONStringer stringer=new JSONStringer();

stringer.array();

int arrayLength=jsonArray.size();

for(int i=0;i<arrayLength;i++)

jsonObject=jsonArray.get(i);

stringer.object();

for(int j=0;j<jsonObject.length;j++)
stringer.key(key[j]).value(jsonObject[j]);

stringer.endObject();


stringer.endArray();

return stringer.toString();

catch(Exception e)

e.printStackTrace();

return null;


//========================================================================
/**
* <b><p> retrieveJSONString(ArrayList<</String[]>> jsonArray)</b></p>
*
* <ul><li>Returns JSON formed string from the ArrayList provided.</li>
* <li><b>jsonArray</b> will be ArrayList of array.</li>
* <li>ex:<b> "key0":"1st element of array","key1":"2nd element of array"</b> </li>
* </ul>
*/
//========================================================================
public static String retrieveJSONString(ArrayList<String[]> jsonObject)

try

String[] arr_jsonObject=new String[2];
JSONStringer stringer=new JSONStringer();

stringer.object();

for(int i=0;i<jsonObject.size();i++)

arr_jsonObject=jsonObject.get(i);
stringer.key(arr_jsonObject[0]).value(arr_jsonObject[1]);


stringer.endObject();

return stringer.toString();

catch(Exception e)

e.printStackTrace();

return null;


//========================================================================
/**
* <p>Converts jsonArray to an arrayList of String[]. Where each row contains values in json
* String array, in increasing order of key values provided, without there key counterparts.
*
* For ex: if JSON string is ["key00":"value00","key01":"value01","key10":"value10","key11":"value11"],
* then the rows of an array will be as follows
* <ul><li>First row : 1st element- value00, 2nd element - value01</li>
* <li>Second row : 1st element- value10, 2nd element - value11</li></ul>
* </p>
*
* */
//========================================================================
public static ArrayList<String[]> convertJSONArraytoArrayList(String jsonArray,String[] key)

try

JSONArray JsonArray=new JSONArray(jsonArray);
JSONObject JsonObject=new JSONObject();

int jsonArraySize=JsonArray.length();

String[] jsonObjectArray;
ArrayList<String[]> jsonArrayList=new ArrayList<String[]>();

for(int i=0;i<jsonArraySize;i++)

JsonObject=JsonArray.getJSONObject(i);

jsonObjectArray=new String[key.length];

for(int j=0;j<key.length;j++)
jsonObjectArray[j]=JsonObject.getString(key[j]);

jsonArrayList.add(jsonObjectArray);


return jsonArrayList;

catch(Exception e)

e.printStackTrace();
return null;



//========================================================================
/**
* <p>Converts jsonString to an arrayList of String[].
*
* For ex: if JSON string is "key00":"value00","key01":"value01",
* then the rows of an array will be as follows
* <ul><li>First row : 1st element- value00</li>
* <li>Second row : 1st element- value10</li></ul>
* </p>
*
* */
//========================================================================
public static ArrayList<String[]> convertJSONStringtoArrayList(String jsonString,String[] key)

try

JSONObject jsonObject=new JSONObject(jsonString);

ArrayList<String[]> jsonArrayList=new ArrayList<String[]>();

for(int i=0;i<key.length;i++)
jsonArrayList.add(new String[]jsonObject.getString(key[i]));

return jsonArrayList;

catch(Exception e)

e.printStackTrace();
return null;



参考技术B 您好,很高兴为您解答,方法好下:
import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONStringer;

import android.util.Log;

public class JSON

//========================================================================
/**
* <b><p> retrieveJSONArray(ArrayList<</String[]>> jsonArray)</b></p>
*
* <ul><li>Returns JSON formed Array from the ArrayList provided.</li>
* <li><b>jsonArray</b> will be ArrayList of array.</li>
* <li>the elements provided in array will be arranged in consecutive keys</li>
* <li>ex:<b> ["key0","1st element of array","key1","2nd element of array"]</b> </li>
* </ul>
*/
//========================================================================
public static String retrieveJSONArray(ArrayList<String[]> jsonArray)

try

String[] jsonObject=new String[2];
JSONStringer stringer=new JSONStringer();

stringer.array();

int arrayLength=jsonArray.size();

for(int i=0;i<arrayLength;i++)

jsonObject=jsonArray.get(i);

stringer.object();

for(int j=0;j<jsonObject.length;j++)
stringer.key("key"+j).value(jsonObject[j]);

stringer.endObject();


stringer.endArray();

return stringer.toString();

catch(Exception e)

e.printStackTrace();

return null;


//========================================================================
/**
* <b><p> retrieveJSONArray(ArrayList<</String[]>> jsonArray,String[] key)</b></p>
*
* <ul><li>Returns JSON formed Array from the ArrayList provided.</li>
* <li><b>jsonArray</b> will be ArrayList of array.</li>
* <li>the elements provided in array will be arranged in consecutive keys</li>
* <li>ex:<b> ["key[0]","1st element of array","key[1]","2nd element of array"]</b> </li>
* </ul>
*/
//========================================================================
public static String retrieveJSONArray(ArrayList<String[]> jsonArray,String[] key)

try

String[] jsonObject=new String[2];
JSONStringer stringer=new JSONStringer();

stringer.array();

int arrayLength=jsonArray.size();

for(int i=0;i<arrayLength;i++)

jsonObject=jsonArray.get(i);

stringer.object();

for(int j=0;j<jsonObject.length;j++)
stringer.key(key[j]).value(jsonObject[j]);

stringer.endObject();


stringer.endArray();

return stringer.toString();

catch(Exception e)

e.printStackTrace();

return null;


//========================================================================
/**
* <b><p> retrieveJSONString(ArrayList<</String[]>> jsonArray)</b></p>
*
* <ul><li>Returns JSON formed string from the ArrayList provided.</li>
* <li><b>jsonArray</b> will be ArrayList of array.</li>
* <li>ex:<b> "key0":"1st element of array","key1":"2nd element of array"</b> </li>
* </ul>
*/
//========================================================================
public static String retrieveJSONString(ArrayList<String[]> jsonObject)

try

String[] arr_jsonObject=new String[2];
JSONStringer stringer=new JSONStringer();

stringer.object();

for(int i=0;i<jsonObject.size();i++)

arr_jsonObject=jsonObject.get(i);
stringer.key(arr_jsonObject[0]).value(arr_jsonObject[1]);


stringer.endObject();

return stringer.toString();

catch(Exception e)

e.printStackTrace();

return null;


//========================================================================
/**
* <p>Converts jsonArray to an arrayList of String[]. Where each row contains values in json
* String array, in increasing order of key values provided, without there key counterparts.
*
* For ex: if JSON string is ["key00":"value00","key01":"value01","key10":"value10","key11":"value11"],
* then the rows of an array will be as follows
* <ul><li>First row : 1st element- value00, 2nd element - value01</li>
* <li>Second row : 1st element- value10, 2nd element - value11</li></ul>
* </p>
*
* */
//========================================================================
public static ArrayList<String[]> convertJSONArraytoArrayList(String jsonArray,String[] key)

try

JSONArray JsonArray=new JSONArray(jsonArray);
JSONObject JsonObject=new JSONObject();

int jsonArraySize=JsonArray.length();

String[] jsonObjectArray;
ArrayList<String[]> jsonArrayList=new ArrayList<String[]>();

for(int i=0;i<jsonArraySize;i++)

JsonObject=JsonArray.getJSONObject(i);

jsonObjectArray=new String[key.length];

for(int j=0;j<key.length;j++)
jsonObjectArray[j]=JsonObject.getString(key[j]);

jsonArrayList.add(jsonObjectArray);


return jsonArrayList;

catch(Exception e)

e.printStackTrace();
return null;



//========================================================================
/**
* <p>Converts jsonString to an arrayList of String[].
*
* For ex: if JSON string is "key00":"value00","key01":"value01",
* then the rows of an array will be as follows
* <ul><li>First row : 1st element- value00</li>
* <li>Second row : 1st element- value10</li></ul>
* </p>
*
* */
//========================================================================
public static ArrayList<String[]> convertJSONStringtoArrayList(String jsonString,String[] key)

try

JSONObject jsonObject=new JSONObject(jsonString);

ArrayList<String[]> jsonArrayList=new ArrayList<String[]>();

for(int i=0;i<key.length;i++)
jsonArrayList.add(new String[]jsonObject.getString(key[i]));

return jsonArrayList;

catch(Exception e)

e.printStackTrace();
return null;




如果我的回答没能帮助您,请继续追问。
转载,仅供参考。本回答被提问者和网友采纳

以上是关于如何以POST形式提交JSON数据的主要内容,如果未能解决你的问题,请参考以下文章

WebAPI的AuthorizeAttribute扩展类中获取POST提交的数据

如何以 JSON 形式返回 WCF 服务 POST 响应

使用原生的ajax如何去提交json格式的数据

PHP如何接收json数据

SoapUI如何提交Http Post多条数据Json请求

php中 curl模拟post发送json并接收json(转)