当前位置:首页 » 网页前端 » 前端接受数据格式
扩展阅读
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()
{