json 转 dynamic
dynamic dynamicObj = JsonConvert.DeserializeObject<dynamic>(jsondata);
var data = dynamicObj.data;//data.msg;
int code = dynamicObj.code
model 转json
string json = JsonConvert.SerializeObject(new
{
a = a,
b = b});
1.Action接收json对象
public ActionResult AddGoodsForList(List_Model listModel, List<GoodsModel> goodsModelList, int gs_price_use = 0){
/* 注意:
1. Content-Type: application/json; charset=utf-8 // charset=utf-8可省,
2.接受参数名必须匹配 对象最外层属性名称,不能直接model整体接收(不能TestModel model )。如 listModel,goodsModelList,gs_price_use 为接受对象中
{'gs_price_use':'0','goodsModelList':[{'number':'1','gs_no':'G00000002','gs_name':'111','duty_type':'增值税发票','gs_price':0},{'number':'1','gs_no':'G00000002','gs_name':'111','duty_type':'增值税发票','gs_price':0}],'listModel':{'ls_no':'1202','st_no':'01','list_no':'XS01201906000042'},'comid':'52'}
*/
}
2.Action接收非json参数 //a=1&b=2 //Content-Type:text/html; charset=utf-8
2.1 可直接用含有参数属性的TestModel 直接接收,实例名任意
public ActionResult Demo(TestModel model)
{
}
2.2 可直接设定参数接收
public ActionResult Demo(int a,string b)
{
}
2.3 接受列表方法:
public ActionResult SubmitCartItem(CartModel model)
3.用 dynamic 类型接收json数据
public class XunKuModel
{
public int state = -1;
public string message ="";
public dynamic data ="";
}
string rst = "{\"data\":{\"UserID\":5615,\"Status\":1,\"Message\":\"登录成功\",\"Token\":\"336c2ce2-f810-4ba6-9049-31f5a78ae5d0\"},\"message\":\"\",\"state\":0}";
XunKuModel model = JLLib.JsonHelper.GetObjByJson<XunKuModel>(rst);
if(model.state==0)
{
var lmodel = model.data;
if(lmodel["Message"]=="登录成功")
{
//if (IsPropertyExist(lmodel,"Token"))//判断存在
string Token = lmodel["Token"];
string UserID = lmodel["UserID"].ToString();
}
}
4.微信利用小程序js_code获取openid
string url = "https://api.weixin.qq.com/sns/jscode2session?appid="+AppConst.AppId+"&secret="+AppConst.AppSecret+"&js_code="+js_code+"&grant_type=authorization_code";
string data = WebHelper.GetRequestData(url,"");
dynamic d = JsonHelper.GetObjByJson<dynamic>(data);
string session_key = "";
string expires_in = "";
string openid = "";
if (IsPropertyExist(d,"session_key"))
session_key = d["session_key"];
if (IsPropertyExist(d,"expires_in"))
expires_in = d["expires_in"];
if (IsPropertyExist(d,"openid"))
openid = d["openid"];
5.谷歌浏览器Console 测试脚本 ajaxPostJson为自己封装执行ajax
var data ={'gs_price_use':'0','goodsModelList':[{'number':'1','gs_no':'G00000002','gs_name':'111','duty_type':'增值税发票','gs_price':0},{'number':'1','gs_no':'G00000002','gs_name':'111','duty_type':'增值税发票','gs_price':0}],'listModel':{'ls_no':'1202','st_no':'01','list_no':'XS01201906000042'},'comid':'52'};ajaxPostJson("/AppApi/AddGoodsForList",JSON.stringify(data),function(res){console.log(JSON.stringify(res));});
function ajaxPostJson(url, dataMap, fnSuccess) {
try {
$.ajax({
type: "POST",
url: url,
data: dataMap,
contentType: 'application/json',
beforeSend: function () { zzc.show(); },
complete: function () { zzc.hide(); },
success: function (data, textStatus, jqXHR) {
var res = {};
var err = jqXHR.getResponseHeader("JLBerror");
if (err != null) {
res.state = "error";
res.content = decodeURI(err);
data = JSON.stringify(res);
}
fnSuccess(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
zzc.hide();
showMsg("出错了!状态码:" + XMLHttpRequest.status);
}
});
} catch (e) {
zzc.hide();
showMsg(e.message);
}
}
function ajaxPost(url, dataMap, fnSuccess) {
try {
$.ajax({
type: "POST",
url: url,
data: dataMap,
beforeSend: function () { zzc.show(); },
complete: function () { zzc.hide(); },
success: function (data, textStatus, jqXHR) {
var res = {};
var err = jqXHR.getResponseHeader("JLBerror");
if (err != null) {
res.state = "error";
res.content = decodeURI(err);
data = JSON.stringify(res);
}
fnSuccess(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
zzc.hide();
showMsg("出错了!状态码:" + XMLHttpRequest.status);
}
});
} catch (e) {
zzc.hide();
showMsg(e.message);
}
}
//android post json:
MediaType JSON=MediaType.parse("application/json; charset=utf-8"); RequestBody requestBody = RequestBody.create(JSON, json); Request request = new Request.Builder() .url("http://192.168.0.102:8080/TestProject/JsonServlet") .post(requestBody) .build(); Response response=okHttpClient.newCall(request).execute(); |