C#:如何将后台的数据通过json格式返回前台

C#:如何将后台的数据通过json格式返回前台,第1张

Web Service接口方法

 [WebMethod]

public string Project(string paramaters)

{

return paramaters

}

实现代码

public string Post(string methodName, string jsonParas)

{

string strURL = Url + "/" + methodName

//创建一个HTTP请求

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL)

//Post请求方式

request.Method = "POST"

//内容类型

request.ContentType = "application/x-www-form-urlencoded"

//设置参数,并进行URL编码

//虽然我们需要传递给服务器端的实际参数是JsonParas(格式:[{\"UserID\":\"0206001\",\"UserName\":\"ceshi\"}]),

//但是需要将该字符串参数构造成键值对的形式(注:"paramaters=[{\"UserID\":\"0206001\",\"UserName\":\"ceshi\"}]"),

//其中键paramaters为WebService接口函数的参数名,值为经过序列化的Json数据字符串

//最后将字符串参数进行Url编码

string paraUrlCoded = System.Web.HttpUtility.UrlEncode("paramaters")

paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(jsonParas)

byte[] payload

//将Json字符串转化为字节

payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded)

//设置请求的ContentLength

request.ContentLength = payload.Length

//发送请求,获得请求流

Stream writer

try

{

writer = request.GetRequestStream()//获取用于写入请求数据的Stream对象

}

catch (Exception)

{

writer = null

Console.Write("连接服务器失败!")

}

//将请求参数写入流

writer.Write(payload, 0, payload.Length)

writer.Close()//关闭请求流

String strValue = ""//strValue为http响应所返回的字符流

HttpWebResponse response

try

{

//获得响应流

response = (HttpWebResponse)request.GetResponse()

}

catch (WebException ex)

{

response = ex.Response as HttpWebResponse

}

Stream s = response.GetResponseStream()

//服务器端返回的是一个XML格式的字符串,XML的Content才是我们所需要的Json数据

XmlTextReader Reader = new XmlTextReader(s)

Reader.MoveToContent()

strValue = Reader.ReadInnerXml()//取出Content中的Json数据

Reader.Close()

s.Close()

return strValue//返回Json数据

}

Url的格式样例:"http://59.68.29.106:8087/IFT_Project.asmx"

methodName参数就是"Project"

JsonParas就是使用C# JavaScriptSerializer将List<Object>类型的对象序列化之后得到的值,数据格式:[{\"UserID\":\"0206001\",\"UserName\":\"ceshi\"}],Json数据中的中括号代表由着多个对象集合序列化,花括号代表一个对象序列化得到的结果,花括号里面的内容使用键值对的方式展示,多个属性之间用逗号隔开,每个对象也用逗号隔开。

request.ContentType必须设置值,建议使用"application/x-www-form-urlencoded",设置其他值就很容易报服务器内部异常,使用这种方式服务接口方法返回的是xml格式的字符串

payload将请求参数转换成二进制来保存,此处一定要将“paramaters”加入其中,不然会报异常缺少参数,paramaters就是服务接口函数的参数名。函数中使用了URL编码,注意在编码的时候只需要将键和值进行编码,不要将中间的=进行编码,不然getResponse的时候会报异常。

request.ContentLength也是必须设置的值

在得到响应流之后Stream s = response.GetResponseStream()需要使用Reader来解析响应流,这个地方我使用的是XmlTextReader,因为我服务方法返回的是xml格式的字符串,其中Json数据在xml的Content中。在取出Json数据之后,再进行相应的反序列化即可得到对象。

可以直接在返回的方法上添加@ResponseBody 实现对象自动转换json格式

@RequestMapping(value = "/get") 

@ResponseBody

public Object getJson() { 

       Map<String, Object> map = new HashMap()

       map.put("name", "dhweicheng")

       map.put("age", 25)

       return map

}

java 访问一个接口得到接口返回JSON,步骤是怎么做的

写个servlet,将结果转换成ArrayJson对象,打印出这个json就行,前端通过ajax去请求获得json数据。java转json需要用到相应的jar包,百度一下吧。

java中的接口是一种特殊的类,使用关键字interface创建。接口功能完全实现后,可以打成jar包,提供给其他公司使用。

要返回json格式数据,可以把接口中抽象方法的返回值类型规定为JSONObject或JSONString类型。这样当其他公司调用时,得到的数据就是json数据了。

另外,以jar形式提供的接口,可以通过反编译得到你的源码,如果你不希望开源,就要加密了。

访问接口时code返回2怎么回事

访问接口时code返回2怎么回事

一般情况接口有调用说明的,需要看接口提供方提供的说明。

AFNeorking 接口返回值类型不是json 时怎么做

AFHTTPRequestOperationManager 进行post调用,

manager.requestSerializer = [AFJSONRequestSerializer serializer]请求

manager.responseSerializer = [AFJSONResponseSerializer serializer]响应

入参出参都会序列化;后面发现接口返回的参数结构不固定,可能是map,array,string

Java中Comparator接口的步骤pare为什么不能返回一个差值

我印象中如果不重写pareTo方法那返回值都是-1吧......

我一般都是实现Comparable接口,重写CompareTo方法就可以了。

至于降序升序,可以这样比较:

假如A的值大于B,你返回1。这样调用Collections.sort()方法就是升序

假如A的值大于B,你返回-1。这样调用Collections.sort()方法就是降序

一般比较的都是对象中一个具体的数值。不知道你的类的构造,不好给例子

返回json的接口struts.xml的怎么配

struts2中用rest后台返回json的方法是统一封装response为JSONObject即可。举例如下:importjava.util.ArrayListimportjava.util.HashMapimportjava.util.Listimportjava.util.Mapimport.opensymphony.xwork2.ActionpublilassTest{publicMapresponseJsonpublicMapgetResponseJson(){returnresponseJson}publicvoidsetResponseJson(MapresponseJson){this.responseJson=responseJson}publicStringgetList(){Mapmap=newHashMap()List>list=newArrayList>()for(inti=0im=newHashMap()m.put("id",i)m.put("name","Mic"+i)list.add(m)}map.put("rows",list)map.put("totalCont",3)this.setResponseJson(map)returnAction.SUCCESS}}

node.js 怎么访问一个php接口

可以的,以GET请求为例

var = require('')

var qs = require('querystring')

var data = {

a: 123,

time: new Date().getTime()}这是需要提交的数据

var content = qs.stringify(data)

var options = {

hostname: '127.0.0.1',

port: 10086,

path: '/pay/pay_callback?' + content,

method: 'GET'

}

var req = .request(options, function (res) {

console.log('STATUS: ' + res.statusCode)

console.log('HEADERS: ' + JSON.stringify(res.headers))

res.setEncoding('utf8')

res.on('data', function (chunk) {

console.log('BODY: ' + chunk)

})

})

req.on('error', function (e) {

console.log('problem with request: ' + e.message)

})

req.end()

Java中返回json数据提交一个接口有多表怎么查

1

这种方法有两大步第一步是拼接需要的json数据,第二步是用servlet的内置对象response返回到前台。

2

String 类型的数据可以不用借助任何工具直接返回,只要把它拼接对了就可以。如我需要返回一个{“suess”:true,“msg”:“修改失败!”}的json,就可以如下图这样写。(注意,java里的引号要用的转义字符“\”)

3

如果需要返回的是一个list或者别的类的化,需要用到JSONArray的辅助工具类,然后使用response.getWriter().print(),返回到打到前台。具体代码如下图。

END

方法2:用Spring框架

如果你使用了Spring框架那就更简单了,你只需要在你的方法返回的时候加一个@ResponseBody的注解就可以了。就这么简单。

用URL访问接口,怎么做

在java中,调用请求接口,主要通过流的方式进行调用,示例接口如下:

/**

* 程序中访问数据接口

*/

public String searchLoginService(String urlStr) {

/** 网络的url地址 */

URL url = null

/** 连接 */

HttpURLConnection Conn = null

/**** 输入流 */

BufferedReader in = null

StringBuffer *** = new StringBuffer()...


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9983334.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存