如何使用JSON格式 POST数据到服务器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用JSON格式 POST数据到服务器相关的知识,希望对你有一定的参考价值。
参考技术A 1.JSON数据格式\\x0d\\x0aa)以最简单的形式,您可以使用以下JSON来表示名称/值对:\\x0d\\x0a“姓”:“布雷特”\\x0d\\x0aB)可以创建包含多个名称/值对的记录,例如:\\x0d\\x0a“FiestNeX”:“布雷特”,“LaSTNED”:“McCurkLin”,“email”:“布雷特@ NeWistalist.com”\\x0d\\x0ac)可以创建一个值数组\\x0d\\x0a“人”):\\x0d\\x0a“FiestNeX”:“布雷特”,“LaSTNED”:“McCurkLin”,“email”:“布雷特@ NeWistalist.com”,\\x0d\\x0a“FiestNeX”:“杰森”、“ListNeNe”:“Hunter”、“email”:“杰森@ servlet。com”\\x0d\\x0a] ]\\x0d\\x0ad)当然,可以使用相同的语法来表示多个值(每个值包含多个记录):\\x0d\\x0a“程序员”):\\x0d\\x0a“FiestNeX”:“布雷特”,“LaSTNED”:“McCurkLin”,“email”:“布雷特@ NeWistalist.com”,\\x0d\\x0a“FiestNeX”:“杰森”、“ListNeNe”:“Hunter”、“email”:“杰森@ servlet。com”\\x0d\\x0a]\\x0d\\x0a“作者”:\\x0d\\x0a姓〉:“艾萨克”、“姓氏”:“阿西莫夫”、“流派”:“科幻小说”,\\x0d\\x0a“第一名字”:“TAD”、“姓氏”:“威廉姆斯”、“流派”:“幻想”\\x0d\\x0a]\\x0d\\x0a“音乐家”:\\x0d\\x0a“姓”:“埃里克”、“姓氏”:“克莱普顿”、“乐器”:“吉他”\\x0d\\x0a]\\x0d\\x0a\\x0d\\x0a请注意,在不同的主要条目(程序员、作者和音乐家)之间,记录中的实际名称/值对可能是不同的。JSON是完全动态的,允许在JSON结构的中间表示数据的方式。\\x0d\\x0a2。在javascript中使用JSON\\x0d\\x0aJSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。\\x0d\\x0a2.1将JSON数据分配给变量\\x0d\\x0a例如,您可以创建一个新的JavaScript变量,并将其直接分配给JSON格式的数据字符串。\\x0d\\x0aVaR人=\\x0d\\x0a“程序员”):\\x0d\\x0a“FiestNeX”:“布雷特”,“LaSTNED”:“McCurkLin”,“email”:“布雷特@ NeWistalist.com”,\\x0d\\x0a“FiestNeX”:“杰森”、“ListNeNe”:“Hunter”、“email”:“杰森@ servlet。com”\\x0d\\x0a]\\x0d\\x0a“作者”:\\x0d\\x0a姓〉:“艾萨克”、“姓氏”:“阿西莫夫”、“流派”:“科幻小说”,\\x0d\\x0a“第一名字”:“TAD”、“姓氏”:“威廉姆斯”、“流派”:“幻想”\\x0d\\x0a]\\x0d\\x0a“音乐家”:\\x0d\\x0a“姓”:“埃里克”、“姓氏”:“克莱普顿”、“乐器”:“吉他”\\x0d\\x0a]\\x0d\\x0a\\x0d\\x0a2.2访问数据\\x0d\\x0a将数组放入JavaScript变量后,可以很容易地访问它。实际上,只使用点符号来表示数组元素。所以,如果你想访问程序员列表的第一个条目,你只需要在JavaScript中使用下面的代码:\\x0d\\x0a人。程序员(0)。\\x0d\\x0a注意,数组的索引从零开始。\\x0d\\x0a2.3修改JSON数据\\x0d\\x0a正如数据被访问一样,数据也可以以同样的方式修改:\\x0d\\x0a人。音乐家[ 1 ]。姓氏=“Rachmaninov”;\\x0d\\x0a2.4转换后串\\x0d\\x0aA)在JavaScript,这种转换也非常简单。\\x0d\\x0aString NejjStangeTeX= Posi.TjsString();\\x0d\\x0aB)可以将任何JavaScript对象转换为JSON文本。而不是处理最初使用JSON字符串来分配值的变量。为了转换名为MyObjor的对象,我们只需要执行相同的命令形式:\\x0d\\x0aString MyObjutsPixs= MyObjut.TjsString();\\x0d\\x0a说明:转换后的字符串用作Ajax调用的字符串,以完成异步传输。\\x0d\\x0a总结:如果您想处理大量的JavaScript对象,那么JSON几乎肯定是一个不错的选择,因此您可以轻松地将数据转换成可以在请求中发送到服务器端程序的格式。\\x0d\\x0a三。服务器端JSON\\x0d\\x0a3.1向服务器发送JSON\\x0d\\x0aa)通过get发送具有名称/值对的JSON\\x0d\\x0a在JSON数据中,将有空格和各种字符。Web浏览器通常希望继续编译它们。为了确保这些字符不会在服务器上造成混淆(或者在向服务器发送数据的过程中),您需要在JavaScript的转义()函数中执行以下操作:\\x0d\\x0aValueURL =“组织人”php?人=“+逃逸(人)tojSouthSnk());\\x0d\\x0aRequest.open(“获取”,URL,TRUE);\\x0d\\x0a请求.OnRead状态更改= UpDebug网页;\\x0d\\x0aRequest.send(NULL);\\x0d\\x0aB)使用POST请求发送JSON数据\\x0d\\x0a当您决定使用POST请求将JSON数据发送到服务器时,您不需要对代码进行很多更改。\\x0d\\x0aValueURL =“组织人”PHP?时间戳=“+新日期())GetTime();\\x0d\\x0aRequest.open(“POST”,URL,TRUE);\\x0d\\x0a请求.OnRead状态更改= UpDebug网页;\\x0d\\x0aRequest.setRequestHeader(“内容类型”,“应用程序/ X-WWW格式- URLNECODE”);\\x0d\\x0aRequest.send(Posi.TjsSouthScript)\\x0d\\x0a注意:赋值的格式必须是var MSG=EVE(+(Req.ReffStEXT++))。\\x0d\\x0a3.2解释服务器上的JSON\\x0d\\x0aa)处理JSON的两个步骤。\\x0d\\x0a对于用于编写服务器端程序的语言,可以找到相应的JSON解析器/工具箱/助手API。\\x0d\\x0a使用JSON解析器/工具箱/帮助器API从客户端获取请求数据,并将数据转换成脚本可以理解的内容。\\x0d\\x0ab)寻找JSON解析器\\x0d\\x0a找到JSON解析器或工具箱的最佳资源是JSON站点。如果使用JavaServlet,JSON.org上的Or.JSON包是一个不错的选择。在这种情况下,您可以从JSON网站下载JSON.ZIP,并添加到项目生成目录中包含的源文件。复合后如何POST一个JSON格式的数据给Restful服务
在Android/java平台上实现POST一个json数据:
JSONObject jsonObj = new JSONObject();
jsonObj.put("username", username);
jsonObj.put("apikey", apikey);
// Create the POST object and add the parameters
HttpPost httpPost = new HttpPost(url);
StringEntity entity = new StringEntity(jsonObj.toString(), HTTP.UTF_8);
entity.setContentType("application/json");
httpPost.setEntity(entity);
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(httpPost);
用curl可执行如下命令:
curl -l -H "Content-type: application/json" -X POST -d '"phone":"13521389587","password":"test"' http://domain/apis/users.json
用jQuery:
$.ajax(
url:url,
type:"POST",
data:data,
contentType:"application/json; charset=utf-8",
dataType:"json",
success: function()
...
)
PHP用cUrl实现:
$data = array("name" => "Hagrid", "age" => "36");
$data_string = json_encode($data);
$ch = curl_init('http://api.local/rest/users');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
by iefreer
以上是关于如何使用JSON格式 POST数据到服务器的主要内容,如果未能解决你的问题,请参考以下文章
Python:如何将 HTTP POST 转换为 JSON 格式