求一个c#的 post请求post json 如何接收并且接收返回json数据的一个demo。

求教c#反序列化json数据,http请求返回的。_c#吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:105,292贴子:
求教c#反序列化json数据,http请求返回的。收藏
&result&: {
&position&: [
&msg&: &OK&
}}返回的格式是这样的,我找的网上的反序列化都是只能对中间那个大括号也就是result之后那个大括号进行,对这条信息没法识别,求教怎么解决,谢了
青浦万达茂-统一运营管理10年,首年6%抵扣房款
里面有一个对象 result对象里面有一个 数组position 和一个对象msg 整一个结构体
public struct modkjw
public datas result { }
public struct datas
public string[] position { }
public string msg { }
}序列化: string[] a = new string[2];
a[0]=&0.0&;a[1]=&0.0&;
datas data = new datas()
msg = &ok&,
position = a
modkjw mop = new modkjw()
result = data
Class5 join = new Class5();//这个是序列化用到的类
string hu = join.Serialize(mop);
Context.Response.Write(hu);反序列化: string join = &你的 json&;
Class5 mojs = new Class5();
modkjw joings = mojs.Deserialize&modkjw&(join);
joings.result.//OK
joings.result.//数组class5 是我的一个序列化的类
Newtonsoft.json这个东西,你值得拥有
用 DataContractJsonSerializer 序列化好。还有json 不要去拼接用什么结构就修改一下类然后序列化就行了。
反序列化返回的是var ,需要強转。也就是说序列化时是什么类反序列化就必须是什么类,所以根据这个返回的json你自己这一个类接收
用json.net
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或  本例旨在说明我的一种Controller接收ajax提交(POST)过来的json对象或数组信息的方式,感觉应该有更好的方式,欢迎提出宝贵意见。
  JSON.stringify(jsonObj)不支持IE8以下浏览器
  前端页面代码如下:
1 &script type="text/javascript" src="~/Scripts/jquery-1.11.3.js"&&/script&
2 &form id="fm"&
&input id="btn" type="button" value="提交" onclick="SaveTest()" /&
7 &script&
function SaveTest() {
var jsonObj = [];
<span style="color: #
jsonObj.push({"id":<span style="background-color: #f5f5f5; color: #,"name":"<span style="background-color: #f5f5f5; color: #3"});
<span style="color: #
jsonObj.push({"id":<span style="background-color: #f5f5f5; color: #,"name":"<span style="background-color: #f5f5f5; color: #4"});
<span style="color: #
jsonObj.push({ "id": <span style="background-color: #f5f5f5; color: #, "name": "<span style="background-color: #f5f5f5; color: #5" });
<span style="color: #
<span style="color: #
url: "/Test/Save",
<span style="color: #
type: "post",
<span style="color: #
dataType: "json",
<span style="color: #
async:false,
<span style="color: #
data: JSON.stringify(jsonObj),
<span style="color: #
success: function (data) {
<span style="color: #
<span style="color: #
<span style="color: #
error: function (XMLHttpRequest, textStatus, errorThrown) {
<span style="color: #
alert(XMLHttpRequest.status);
<span style="color: #
alert(XMLHttpRequest.readyState);
<span style="color: #
alert(textStatus);
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: # &/script&
  Controller-&Action代码如下(需引用System.IO和System.Web.Script.Serialization命名空间):
1 [HttpPost]
public ActionResult Save()
var sr = new StreamReader(Request.InputStream);
var stream = sr.ReadToEnd();
JavaScriptSerializer js = new JavaScriptSerializer();
var list = js.Deserialize&List&Models.SelectList&&(stream);
if (list.Any())
<span style="color: #
foreach (var item in list)
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
<span style="color: #
return View();
<span style="color: #
  SelectList对象类(类这里可以加[Serializable]或者不加,因为没有直接传输或存储SelectList对象,所以我这里没有加)
<span style="color: # public partial class SelectList
<span style="color: #
<span style="color: #
public int id { get; set; }
<span style="color: #
<span style="color: #
public string name { get; set; }
<span style="color: #
<span style="color: #
public string text { get; set; }
<span style="color: #
  大体思路是将json对象或数组转换为字符串,由前端传入服务端,Request接收,然后使用json反序列化为实体对象。试过action直接加string参数,但进入action后,接收不到传过来的json字串。当然,也可以将json字串直接保存在隐藏域,form提交到服务端获取。
阅读(...) 评论()2923人阅读
java(135)
import java.io.IOE
import java.io.UnsupportedEncodingE
import net.sf.json.JSONO
import mons.lang.StringU
import org.apache.http.HttpR
import org.apache.http.client.ClientProtocolE
import org.apache.http.client.methods.HttpP
import org.apache.http.entity.StringE
import org.apache.http.impl.client.DefaultHttpC
import org.apache.http.message.BasicH
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityU
* 利用的邮件、短信网关发送系统提示信息,发送系统信息给用户
* @author zhang
public class SendMsgUtil {
// 电子邮件发送网关接口
public static final String NETGATE_EMAIL_URL = &.cn:8090/api/sendemail.php&;
// 短信发送网关接口
public static final String NETGATE_SMS_URL = &.cn:8090/api/sendsms.php&;
public static final String APP_TYPE = &jssjApp&;
public static final String MSG_TYPE_EMAIL = &2&;// 邮件
public static final String MSG_TYPE_SMS = &1&;// 短信
public static final String SOURCE = &netgate&;// 返回信息来源
public static final String STATUS_SUCCESS = &1&;// 返回成功标志
private static final String APPLICATION_JSON = &application/json&;
private static final String CONTENT_TYPE_TEXT_JSON = &text/json&;
private static final String CHARSET_UTF_8 = &UTF-8&;
* 发送json数据到服务器网关接口
* @param url
* @param param
public static String postJson(String url, JSONObject param) {
HttpPost httpPost = new HttpPost(url);
httpPost.addHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON);
// 绑定到请求 Entry
StringEntity se = new StringEntity(param.toString(), CHARSET_UTF_8);
se.setContentType(CONTENT_TYPE_TEXT_JSON);
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON));
httpPost.setEntity(se);
// 发送请求
HttpResponse httpResponse = new DefaultHttpClient().execute(httpPost);
// 得到应答的字符串,这也是一个 JSON 格式保存的数据
String resp = EntityUtils.toString(httpResponse.getEntity(), CHARSET_UTF_8);
System.out.println(resp);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
* 组合电子邮箱发送数据
* @param email
* @param username
private static String getFormatEmail(String email, String username) {
email = StringUtils.trim(email).toLowerCase();
username = StringUtils.trim(username);
if (StringUtils.isNotBlank(email)) {
if (StringUtils.isBlank(username)) {
username = &null&;
return email + &/& +
* 组合手机号发送数据
* @param phone
* @param username
private static String getFormatPhone(String phone, String username) {
phone = StringUtils.trim(phone).toLowerCase();
username = StringUtils.trim(username);
if (StringUtils.isNotBlank(phone)) {
if (StringUtils.isBlank(username)) {
username = &null&;
return phone + &/& +
* 组合发送的json数据
* @param type
* @param toAddress
* @param username
* @param title
* @param content
private static JSONObject getPostJson(String type, String toAddress, String username, String title, String content) {
JSONObject param = new JSONObject();
param.put(&apptype&, APP_TYPE);
param.put(&msgtype&, type);
param.put(&title&, title);
param.put(&content&, content);
if (type.equalsIgnoreCase(MSG_TYPE_EMAIL)) {// 邮件
param.put(&sendto&, getFormatEmail(toAddress, username));
} else if (type.equalsIgnoreCase(MSG_TYPE_SMS)) {// 短信
param.put(&sendto&, getFormatPhone(toAddress, username));
* 发送单封邮件
* @param email
* @param username
* @param title
* @param content
public static boolean sendEmail(String email, String username, String title, String content) {
// 处理参数信息,去空,邮件字母转小写
title = StringUtils.trim(title);
content = StringUtils.trim(content);
if (StringUtils.isBlank(username)) {
username = &null&;
// 邮箱地址、内容均不为空时,发送邮件,否则不发送
if (StringUtils.isNotBlank(email) && StringUtils.isNotBlank(content)) {
// 先封装一个 JSON 对象
JSONObject param = new JSONObject();
param = getPostJson(MSG_TYPE_EMAIL, email, username, title, content);
String resp = postJson(NETGATE_EMAIL_URL, param);
// 解析返回的json数据
JSONObject respJson = JSONObject.fromObject(resp);
Integer status = (Integer) respJson.get(&status&);
if (status == 1) {
* 发送单条短信
* @param phone
* @param username
* @param title
* @param content
public static boolean sendSMS(String phone, String username, String title, String content) {
// 处理参数信息,去空,邮件字母转小写
title = StringUtils.trim(title);
content = StringUtils.trim(content);
if (StringUtils.isBlank(username)) {
username = &null&;
// 邮箱地址、内容均不为空时,发送邮件,否则不发送
if (StringUtils.isNotBlank(phone) && StringUtils.isNotBlank(content)) {
// 先封装一个 JSON 对象
JSONObject param = new JSONObject();
param = getPostJson(MSG_TYPE_SMS, phone, username, title, content);
String resp = postJson(NETGATE_SMS_URL, param);
// 解析返回的json数据
JSONObject respJson = JSONObject.fromObject(resp);
String status = (String) respJson.get(&status&);
if (&1&.equalsIgnoreCase(status)) {
public static void main(String[] args) {
// sendEmail(&zhang_&, &zhang&, &邮件标题测试&, &邮件内容测试&a href=&#39;/&#39;&二维码链接&/a&&);
sendSMS(&&, &张某某&, &短信标题测试&, &短信内容测试&a href=&#39;/&#39;&二维码链接&/a&&);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:646654次
积分:8076
积分:8076
排名:第2159名
原创:212篇
转载:268篇
评论:26条
(4)(4)(4)(2)(3)(8)(8)(1)(1)(1)(9)(1)(5)(2)(1)(3)(2)(6)(12)(3)(14)(2)(16)(1)(2)(2)(1)(5)(3)(11)(2)(5)(4)(8)(1)(2)(5)(2)(2)(6)(20)(10)(10)(7)(10)(13)(18)(25)(40)(25)(34)(21)(33)(1)(11)(8)(22)(3)(1)}

我要回帖

更多关于 httppost请求发送json 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信