當前位置:首頁 » 網頁前端 » 前端接受數據格式
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端接受數據格式

發布時間: 2022-10-04 08:20:27

1. php怎麼接收json數據格式

PHP接收JSON格式的數據
在API服務中,目前流行採用json形式來交互。
前端調用的介面輸出Json數據,這個比較簡單,只需要組織好數據,用json_encode($array) 轉化一下,前端就得到json格式的數據。
接收前端提交的json數據稍微復雜一點,原因是:PHP默認識別的數據類型是application/x-www.form-urlencoded標準的數據類型。因此,對型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之類的內容無法解析,如果用$_POST數組來接收就會失敗!
此時可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 或 file_get_contents('php://input') 來獲取提交的數據
查看手冊,可以發現$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的區別:
$_POST:通過 HTTP POST 方法傳遞的變數組成的數組,是自動全局變數。
$GLOBALS['HTTP_RAW_POST_DATA'] :總是產生 $HTTP_RAW_POST_DATA 變數包含有原始的 POST 數據。此變數僅在碰到未識別 MIME 類型的數據時產生。$HTTP_RAW_POST_DATA 對於 enctype="multipart/form-data" 表單數據不可用。也就是說基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一樣的。但是如果post過來的數據不是PHP能夠識別的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']來接收,比如 text/xml 或者 soap 等等。

2. 前端怎麼接收別人調用到的介面數據

ajax,想要接收數據,那麼你需要先請求數據,一般使用Ajax。
你的開發文檔上面會詳細寫明,前端js請求後端那個介面,傳參類型、格式,然後返回什麼數據類型、格式。

3. spring 方法怎麼接收前端傳入的json數據

1.json作為一種輕量級的數據交換格式,在前後台數據交換中占據著非常重要的地位。Json的語法非常簡單,採用的是鍵值對表示形式。
2.JSON 可以將 JavaScript 對象中表示的一組數據轉換為字元串,然後就可以在函數之間輕松地傳遞這個字元串,或者在非同步應用程序中將字元串從 Web
3.客戶機傳遞給伺服器端程序,也可以從伺服器端程序傳遞json格式的字元串給前端並由前端解釋。這個字元串是符合json語法的,而json語法又是javascript語法的子集,所以javascript很容易解釋它,而且JSON 可以表示比"名稱 / 值對"更復雜的結構。

4. 作為java後端,在用protobuf的情況下我該給前端傳什麼形式的數據

protobuf是你們落地時存儲的數據格式,跟給前端的格式是沒有關系的。
可以通過工具類直接轉json後傳給前端。
Class<?> clazz = Class.forName(className);
Method method = clazz.getMethod("parseFrom", byte[].class);

JsonFormat().printToString((GeneratedMessage) method.invoke(clazz, bytes));

其中className是你根據protobuf文件生成的java類,bytes是讀取的protobuf對象的位元組數組。

5. ajax 獲取不到值

是因為數據格式有問題,有兩種方法。

  1. 修改前端接收數據的格式為文本text:

$.ajax({
url:'gethint.php',
type:'get',
dataType:'text',//html,text,json
data:{'ccc':'a'},
success:function(obj){
$('#resText').html(obj)
}
})

2. 修改後端發出數據的格式為json格式:

<?php
$action=$_GET['ccc'];
if($_GET['ccc']=='a'){
#code...
echojson_encode("a");
}
else{
echojson_encode("b");
}
?>

6. 一個介面返回contenttype=text/plain的數據,在前端怎麼處理

springboot項目,在接收text/plain格式的時候,無法通過@requestBody得到請求中的json信息,需要對請求中的參數進行解析。

異常 type 'text/plain;charset=UTF-8' not supported。

/**
* 解析text/plain格式請求中的json
*
* @param request
* @return
*/
public static String fetchPostByTextPlain(HttpServletRequest request) {
try {
BufferedReader reader = request.getReader();
char[] buf = new char[512];
int len = 0;
StringBuffer contentBuffer = new StringBuffer();
while ((len = reader.read(buf)) != -1) {
contentBuffer.append(buf, 0, len);
}
return contentBuffer.toString();

} catch (IOException e) {
e.printStackTrace();
log.error("[獲取request中用POST方式「Content-type」是「text/plain」發送的json數據]異常:{}", e.getCause());
}
return "";

7. node.js如何判斷前端發過來的數據是json格式

首先前後端在定介面的時候是要提前約定的。
一方提出我接收的數據格式必須是 JSON,另一方必須按規則提交。
如果你想做容錯的話,可以根據 content type 判斷(application/json)。

8. 如何將數據以json格式傳給前端

將數據以json格式傳給前端:
function generateDtb() {
//寫入
var txtName = document.getElementById("txtName").value;
//創建數組
var dtb = new Array();
//通過循環把數據寫入到數組並返回
for (var i = 0; i < firstGroup.length; i++) {

var row = new Object();
row.Name = txtName;
row.fullMoney = firstGroup[i].value;
row.discount = secondGroup[i].value;
dtb.push(row);
}
return dtb;
}

把數組轉換成json串傳入到後台:
$(function () {
//點擊botton1
$("#lbtnOK").click(function () {
var url = "DiscountManger.aspx?ajax=1";
var dtb = generateDtb();
// var strName = document.getElementById("txtName").value;

if (dtb == null)
{ }
else {
//序列化對象
var postdata = JSON.stringify(dtb);
//非同步請求
$.post(url, { json: postdata }, function (json) {
if (json) {
jBox.tip("添加成功!", "提示");
location.reload();
}
else {
jBox.tip("添加失敗!", "提示");
location.reload();
}
}, "json")

}
});
});

在後台的操作:
首先判斷是否需要傳輸數據

if (!IsPostBack)
{
//判斷是否非同步請求
if (Request.QueryString["ajax"] == "1")
{
ProcessRequest();
}

在這里進行對數據的處理:
/// <summary>
/// 處理非同步請求
/// </summary>
private void ProcessRequest()
{
//存入要填寫的策略
ArrayList arrDiscount = new ArrayList();
Response.ContentType = "text/html";
string json = Request.Form["json"];
//反序列化DataTable
if (json == null)
{
return;
}
else
{
DataTable newdtb = Json2Dtb(json);
for (int i = 0; i < newdtb.Rows.Count; i++)
{
Entity.StrategyDiscount enStrategyDiscount = new Entity.StrategyDiscount();
//打折方案名
enStrategyDiscount.name = newdtb.Rows[i]["Name"].ToString();
//商店ID
enStrategyDiscount.shopId = long.Parse(LoginInfo.ShopID);

enStrategyDiscount.fullMoney = Convert.ToDecimal(newdtb.Rows[i]["fullMoney"].ToString());
enStrategyDiscount.discount = Convert.ToDecimal(newdtb.Rows[i]["discount"].ToString());
//寫入數據到數組
arrDiscount.Add(enStrategyDiscount);
}
//寫入數據到資料庫
IStrategyBLL strategy = new StrategyBLL();

if (strategy.AddStrategyDiscount(arrDiscount))
{
Response.Write("true");
Response.End();
}
else
{
Response.Write("false");
Response.End();
}

}

這里,我們需要把json轉換成datatable
/// <summary>
/// Json轉DataTable
/// </summary>
/// <param name="json"></param>
/// <returns></returns>
private DataTable Json2Dtb(string json)
{

JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = jss.Deserialize<ArrayList>(json);
DataTable dtb = new DataTable();
if (dic.Count > 0)
{
foreach (Dictionary<string, object> drow in dic)
{
if (dtb.Columns.Count == 0)
{
foreach (string key in drow.Keys)
{
dtb.Columns.Add(key, drow[key].GetType());
}
}
DataRow row = dtb.NewRow();
foreach (string key in drow.Keys)
{
row[key] = drow[key];
}
dtb.Rows.Add(row);
}
}

return dtb;
}

這樣,就可以把數據無刷新的寫入到資料庫。
當然,如果我們有一個從資料庫讀取的datatable,如果通過json顯示在前台呢。
首先,我們需要把datatable轉換為json數據

/// <summary>
/// DataTable轉Json
/// </summary>
/// <param name="dtb"></param>
/// <returns></returns>
private string Dtb2Json(DataTable dtb)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = new ArrayList();
foreach (DataRow row in dtb.Rows)
{
Dictionary<string, object> drow = new Dictionary<string, object>();
foreach (DataColumn col in dtb.Columns)
{
drow.Add(col.ColumnName, row[col.ColumnName]);
}
dic.Add(drow);
}
return jss.Serialize(dic);
}

然後寫回到前台

/// <summary>
/// 處理非同步請求
/// </summary>
private void ProcessRequest()
{
Response.ContentType = "text/html";
string json = Request.Form["json"];
//反序列化DataTable
DataTable newdtb = Json2Dtb(json);
//序列化DataTable為JSON
string back = Dtb2Json(newdtb);
Response.Write(back);
Response.End();
}

在前台接受顯示:

$(function() {
//點擊botton1
$("#botton1").click(function() {
createTable(json);
});
});

//顯示Json中的數據
function createTable(json) {
var table = $("<table border='1'></table>");
for (var i = 0; i < json.length; i++) {
o1 = json[i];
var row = $("<tr></tr>");
for (key in o1) {
var td = $("<td></td>");
td.text(o1[key].toString());
td.appendTo(row);
}
row.appendTo(table);
}
table.appendTo($("#back"));
}

9. web前端配置文件的格式有哪些

*.pif為DOS環境下的可執行文件在Windows下執行時所需要的文件格式★常見的文件後綴名.ACA:Microsoft的代理使用的角色文檔.acf:系統管理配置.acm:音頻壓縮管理驅動程序,為Windows系統提供各種聲音格式的編碼和解碼功能.aif:聲音文件,支持壓縮,可以使用WindowsMediaPlayer和QuickTimePlayer播放.AIF:音頻文件,使用WindowsMediaPlayer播放.AIFC:音頻文件,使用WindowsMediaPlayer播放.AIFF:音頻文件,使用WindowsMediaPlayer播放.ani:動畫游標文件擴展名,例如動畫沙漏。.ans:ASCII字元圖形動畫文件.arc:一種較早的壓縮文件,可以使用WinZip,WinRAR,PKARC等軟體打開.arj:壓縮文件。可以使用WinZip,WinRAR,PKARC等軟體打開.asf:微軟的媒體播放器支持的視頻流,可以使用WindowsMediaPlayer播放.asp:微軟的視頻流文件,可以使用WindowsMediaPlayer打開.asp:微軟提出的ActiveServerPage,是伺服器端腳本,常用於大型網站開發,支持資料庫連接,類似PHP。可以使用VisualInterDev編寫,是目前的大熱門.asx:WindowsMedia媒體文件的快捷方式.au:是Internet中常用的聲音文件格式,多由Sun工作站創建,可使用軟體WaveformHoldandModify播放。NetscapeNavigator中的LiveAudio也可以播放.au文件.avi:一種使用MicrosoftRIFF規范的Windows多媒體文件格式,用於存儲聲音和移動的圖片.bak:備份文件,一般是被自動或是通過命令創建的輔助文件,它包含某個文件的最近一個版本,並且具有於該文件相同的文件名.basBasic:語言源程序文件,可編譯成可執行文件,目前使用Basic開發系統的是VisualBasic.bat:批處理文件,在MS-DOS中,.bat文件是可執行文件,有一系列命令構成,其中可以包含對其他程序的調用.bbs:電子告示板系統文章信息文件.bfc:Windows的公文包文件.bin:二進制文件,其用途依系統或應用而定.bmp:Bitmap點陣圖文件,這是微軟公司開發Paint的自身格式,可以被多種Windows和WindowsNT平台及許多應用程序支持,支持32位顏色,用於為Windows界面創建圖標的資源文件格式。.c:C語言源程序文件,在C語言編譯程序下編譯使用.cab:Microsoft制訂的壓縮包格式,常用於軟體的安裝程序,使用Windows自帶的實用程序,Extract.exe可以對其解壓縮,WinZip,WinRAR等都支持這種格式.cal:Windows中的日歷文件.cdf:InternetExplorer的頻道文件.cdr:CorelDraw中的一種圖形文件格式,它是所有CorelDraw應用程序中均能夠使用的一種圖形圖像文件格式.cdx:索引文件,存在於Dbase,Foxbase,Foxpro系統軟體環境下.cfg:配置文件,系統或應用軟體用於進行配置自己功能,特性的文件.chm:編譯過後的HTML文件,常用於製作幫助文件和電子文檔.clp:在Windows下剪貼板中的文件格式.cmd:用於WindowsNT/2000的批處理文件,其實與BAT文件功能相同,只是為了與DOS/Windows9x下的BAT有所區別.cmf:音效卡標準的音樂文件,FM合成器等可以回放.cnf:NetMeetting會議連接文件.cnt:聯機幫助文件目錄索引文件,通常和同名的.hlp文件一起保存.col:由AutodeskAnimator,AutodeskAnimatorPor等程序創建的一種調色板文件格式,其中存儲的是調色板中各種項目的RGB值.com:DOS可執行命令文件,一般小於64KB.cpl:控制面板擴展文件,Windows操作系統使用.cpp:C++語言源程序,非常強大的語言,在各種平台中都有相應的開發系統.crd:Windows中的卡片文件.crt:用於安全方面的證書認證文件.cur:Windows下的游標資源文件格式,可用游標編輯軟體編輯.css:Text/css文件.dat:數據文件,在應用程序中使用.dat:VCD中的圖象聲音文件,VCD播放軟體可調用,或是通過VCD機播放.dbf:資料庫文件,Foxbase,Dbase,VisualFoxPro,等資料庫處理系統所產生的資料庫文件.dcx:傳真瀏覽文檔文件.ddi:映象文件,DUP,HD,IMG等工具可.dev:設備驅動程序.dib:設備無關點陣圖文件,這是一種文件格式,其目的是為了保證用某個應用程序創建的點陣圖圖形可以被其它應用程序裝載或顯示一樣.dir:目錄文件.dll:Windows動態連接庫,幾乎無處不在,但有時由於不同版本DLL沖突會造成敗各種各樣的問踢.doc:是目前市場佔有率最高的公室軟體MicrosoftOffice中的字處理軟體Word創建的文檔.dos:Windows保留的MS-DOS的某些系統文件.dot:MicrosoftWord的文檔模板文件,通過模板可以簡化一些常用格式文檔的創建工作,而且可以內嵌VBA程序來實現某些自動化功能.drv:設備驅動程序文件,用在各種系統中.dwg:AutoCAD的圖紙文件,也是許多繪圖軟體都支持的格式,常用於共享數據.dxb:AutoCAD創建的一中圖形文件格式.dxf:圖形交換格式,一種計算機輔助設計的文件格式,最初開發用來與AutoCAD一起使用,以便於圖形文件在應用程序之間的傳遞,它以ASCII方式儲存圖形,在表現圖形的大小方面十分精確.der:Certiticate文件.dic:Txt文件.emf:由Microsoft公司開發的Windows32位擴展圖元文件格式,其總體設計目標是要彌補在MicrosoftWindows3.1(Win16)中用的*.wmf文件格式的不足,使得圖元文件更加易於使用.eps:用PostScript語言描述的一種圖形文件格式,以文本文件保存,在PostScript圖形列印機上能列印出高品質的圖形圖象,最高能表示32點陣圖形圖象.err:編譯錯誤文件,存在於Dbase,Foxbase,Foxpro系列軟體環境下.exe:可執行文件,雖然後綴名相同,但具有不同的格式和版本.exp:3DS使用的顯示卡驅動程序.exc:Txt文件.flc:AutodeskAnimator和Animatorpro的動畫文件,支持256色,最大的圖象象索是64000*64000,支持壓縮,廣泛用於動畫圖形中的動畫序列,計算機輔助設計和計算機游戲應用程序.fnd:保存的搜索結果.fon:點陣字型檔文件.for:Fortran語言程序.fot:指向字體的快捷鍵.fp:配置文件,存在於Dbase,Foxbase,Foxpro系列軟體的環境下.fpt:備注欄位文件,存在於Dbase,Foxbase,Foxpro系列軟體的環境下.frt:報表文件,存在於Dbase,Foxbase,Foxpro系列軟體的環境下.frx:報表文件,存在於Dbase,Foxbase,Foxpro系列軟體的環境下.fxp:編譯後的程序,存在於Dbase,Foxbase,Foxpro系列軟體的環境下.gif:在各種平台的各種圖形處理軟體上均能夠處理的,經過壓縮的一種圖形文件格式.grh:方正公司的圖象排版文件.grp:Windows下的程序管理器產生的組窗口文件.goc:Gocserve.gra:MSGraph.Chart.5.h:C語言源程序頭文件.hlp:Windows應用程序幫助文件.hqx:Macintosh中使用BinHex將二進制文件編碼為7位的文本文件,大多數Macintosh文件皆以.hqx出現(.bin極少使用),在Macintosh中,可使用StuffItExpander對.hqx解碼,在Windows中可使用BinHex13解碼.ht:超級終端.htm:保存超文本描述語言的文本文件,用於描述各種各樣的網頁,使用各種瀏覽器打開.html:同.htm文件.icm:圖象配色描述文件.ico:Windows中的圖標文件,可以包含同一個圖標的多種格式,使用圖標編輯軟體創建.idf:MIDI樂器定義.idx:索引文件,存在於Dbase,Foxbase,Foxpro系列軟體的環境下.iff:文件交換格式文件,這種文件格式多用於Amiga平台,在這種平台上它幾乎可以存儲各種類型的數據,在其它平台上,IFF文件格式多用於存儲圖象和聲音文件.image:MAcintosh磁碟映象文件,常見於萍果機的FTP網點,在Macintosh中由ShrinkWrap處理.ime:Windows下的輸入法文件.img:磁碟映象文件,用HD-COPY,WinImage等工具打開後可以恢復到一張磁碟上.inc:匯編語言包含文件,類似C/C++中的.H文件.inf:Windows下的軟體安裝信息,Windows的標准安裝程序根據此文件內的安裝信息對軟體,驅動程序等進行安裝.ini:Windows中的初始化信息文件,已經用的不多了,新的應用程序將設置保存在系統的注冊表中.jar:一種壓縮文件,ARJ的新版本,不過不太流行,可以使用WinJar,Winrar等打開.jpeg:一種圖片壓縮文件,同.jpg.jpg:靜態圖象專家組制訂的靜態圖象壓縮標准,具有很高的壓縮比,使用非常廣泛,可使用PhotoShop等圖象處理軟體創建.lnk:快捷方式,這個文件指向另一個文件,開始菜單的程序文件夾下每條項目都是一個LNK文件.log:日誌文件,通常用來記錄一些事件之類.lzh:一種古老的壓縮文件,可以使用WinRAR打開.mac:Macintosh中使用的一中灰度圖形文件格式,在MacintoshPaintbrush中使用,其解析度只能是720*567.mag:圖形文件格式.mdb:MicrosoftAccess使用的資料庫格式,是非常流行的桌面資料庫.men:內存應用文件,存在於Dbase,Foxbase,Foxpro系列軟體的環境下.mid:音頻壓縮文件,曾經非常流行,不過在現在的軟體中用的很少了rle:一種壓縮過的點陣圖文件格式,RLE壓縮方案是一種極其成熟的壓縮方案,特點是無損失壓縮,既節省了磁碟空間又不損失任何圖像數據,但在打開這種壓縮文件時,要花費時間,此外,一些兼容性不太好的應用程序可能會搭不開.rm:Windows下的RealPlayer所支持的視頻壓縮文件,網上非常流行的流式視頻文件,很多實時視頻新聞等都是採用這種格式的,不過,最新的WindowsMediaVideoV8已經對其發起了強大的攻勢.rmi:MIDI音序文件.rtf:豐富文本格式文件,以純文本描述內容,能夠保存各種格式信息,可以用寫字版,Word等創建.sav:存檔文件.scp:用於Windows系統中Internet撥號用戶,自動撥號登錄用的腳本文件,可避免手動登錄時繁瑣的鍵盤輸入.scr:屏障保護文件.sct:屏幕文件.scx:屏幕文件.set:Microsoft備份集文件,用於保存要備份的內容,設置等信息.shb:指向一個文檔的快捷方式.snd:Mac聲音文件,Apple計算機公司開發的聲音文件格式,被Macintosh平台和多種Macintosh應用程序所支持,支持某些壓縮.sql:查詢文件,在Dbase,Foxbase,Foxpro系列軟體的環境下使用.svg:SVG可以算是目前最火熱的圖像文件格式了,它是基於XML由WorldWideWebConsortium聯盟開發的,SVG是可縮放的矢量圖形.svx:Amiga聲音文件,Commodore所開發的聲音文件格式,被Amiga平台和應用程序所支持,不支持壓縮.swf:flash是Micromedia公司的產品,嚴格說它是一種動畫編輯軟體,實際上它是製作出一種後綴名為.swf的動畫,這種格式的動畫能用比較小的體積來表現豐富的多媒體形式,並且還可以與HTML文件達到一種"水乳交融"的境界.swg:虛擬內存交換文件,由操作系統使用.sys:系統文件,驅動程序等,在不同的操作系統中有不同的定義

10. 後端的的數據格式為數組 前端怎麼傳參

將數據以json格式傳給前端:
function generateDtb() {
//寫入
var txtName = document.getElementById("txtName").value;
//創建數組
var dtb = new Array();
//通過循環把數據寫入到數組並返回
for (var i = 0; i < firstGroup.length; i++) {

var row = new Object();
row.Name = txtName;
row.fullMoney = firstGroup[i].value;
row.discount = secondGroup[i].value;
dtb.push(row);
}
return dtb;
}

把數組轉換成json串傳入到後台:
$(function () {
//點擊botton1
$("#lbtnOK").click(function () {
var url = "DiscountManger.aspx?ajax=1";
var dtb = generateDtb();
// var strName = document.getElementById("txtName").value;

if (dtb == null)
{ }
else {
//序列化對象
var postdata = JSON.stringify(dtb);
//非同步請求
$.post(url, { json: postdata }, function (json) {
if (json) {
jBox.tip("添加成功!", "提示");
location.reload();
}
else {
jBox.tip("添加失敗!", "提示");
location.reload();
}
}, "json")

}
});
});

在後台的操作:
首先判斷是否需要傳輸數據

if (!IsPostBack)
{
//判斷是否非同步請求
if (Request.QueryString["ajax"] == "1")
{
ProcessRequest();
}

在這里進行對數據的處理:
/// <summary>
/// 處理非同步請求
/// </summary>
private void ProcessRequest()
{