有时候我们调用第三方接口,返回的并不是完整的链接带参数,而我们只需要获取指定的一些参数

例如:code=200&msg=success&timestamp=1657539&nonce_str=T8Zhan&data=%7B%22pre_tre_no%22%3A%22OID2022071117311BA%22%2C%22open_ord_id%22%3A%22EP6155220700100032%22%2C%22open_ord_time%22%3A1657531889%2C%22open_uni_id%22%3A6155%2C%22open_app_id%22%3A%221118%22%2C%22open_acc_id%22%3A6155220100100002%2C%22open_pay_type%22%3A%22pay_yy%22%2Cb_pay_type%22%3A%22%22%2Cpen_status%22%3A9%2C%22open_type%22%3A1%2C%22open_user_percode%22%3A%22110180%22%n_fee_total%22%3A%220.02%22%2C%22ext_trade_no%22%312%2C%22ext_trade_time%22%3A1657531888%2C%22ext_mer_id%22%3A%221037%22%2C%22ext_wallet%22%3A1%2C%22pre_attach%22%3A%22%22%2C%22pre_ode%22%3A%22%22%2C%22pre_order_tus%22%3A3%7D&method=nify&real_app_id=1118&sign=8032BEBE4916DAA256C419B

除了傻瓜式解码然后再写一堆方法去截取参数之外,当然还有更好的写法!

var str = "code=200&msg=success&timestamp=1657531889&nonce_str=T88cZhan&data=%7B%22pre_trade_no%22%3A%22OID20220711173116DDBA%22%2C%22open_ord_id%22%3A%22EP61552232%22%2C%22open_ord_time%22%3A1657531889%2C%22open_uni_id%22%3A6155%22open_app_id%22%3A%28%22%2C%22open_acc_id%22%3A615522012%2C%22open_pay_type%22%3A%22pay_yay%22%2C%22open_sub_pay_type%22%3A%22C%22open_status%22C%22open_type%22%22open_user_percode%22%3%22%2C%22open_fee_total%22%3A%220.02%22%2C%22ext_trade_no%22%3A2%2C%22ext_trade_time%22%3A1688%2C%22ext_mer_id%22%3A%2210C%22ext_wallet_num%22%3A1%ttach%22%3A%22%22%2C%22pre_pay_code%22%3A%status%22%3A3%7D&method=noty&real_app_id=18&sign=8056C419B";
//var conStr = HttpUtility.UrlDecode(str);
var collection = HttpUtility.ParseQueryString(str);
var psrsms = JsonConvert.DeserializeObject<data>(collection["data"]);
//var collection2 = HttpUtility.ParseQueryString(conStr);
Console.WriteLine(psrsms.pre_trade_no);
//Console.WriteLine(collection2["data"]);
Console.ReadLine(); public class data
{
public string pre_trade_no { get; set; } //第三方商户订单号
public string pre_attach { get; set; } //原值返回字符串
public string open_status { get; set; } //订单支付状态,"9"代表已成功
public string open_ord_id { get; set; } //开放平台订单ID
public string open_pay_type { get; set; } //订单支付渠道
}

  

.Net 获取URL中指定参数值的更多相关文章

  1. 使用JS,获取URL中指定参数的值

    /** * 获取URL中指定参数的值 * * @param name 参数名称 * @returns */ function getQueryString(name) { var reg = new ...

  2. js中获取URL中指定的查询字符串

    js中获取URL中指定的搜索字符串,主要利用location对象实现,废话少说,上代码. function getSearchString(key) { // 获取URL中?之后的字符 var str ...

  3. JS根据key值获取URL中的参数值,以及把URL的参数转换成json对象

    //把url的参数部分转化成json对象 parseQueryString: function (url) { var reg_url = /^[^\?]+\?([\w\W]+)$/, reg_par ...

  4. 使用JavaScript获取url中的参数值

    今天需要用到从url中获取参数,在网上找了几个JavaScript方法,mark下来.   一些可以使用的去获取url中指定的部分:如http://www.mystuff.com.cn/aboutus ...

  5. 获取URL中的参数值

    //获取url中ID的值function getParamByName(name, url) { var match = RegExp('[?&]' + name + '=([^&]* ...

  6. 在JQuery中获取URL中的参数值

    添加一个js文件,代码如下 // * jQuery url get parameters function [获取URL的GET参数值] // *character_set UTF-8 // * au ...

  7. js获取URL中指定的值

    function getSearchString(key) { // 获取URL中?之后的字符 var str = location.search; str = str.substring(1,str ...

  8. 获取url中指定的参数

    function GetRequest(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(& ...

  9. js获取url中的参数值

    在博客园看家一片不错的文章:http://www.cnblogs.com/EnderH/p/5398409.html 在这里记下对自己比较有用的三种: 1.正则 function GetQuerySt ...

  10. javascript中正则实现读取当前url中指定参数值方法。

    getQueryString:function(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*) ...

随机推荐

  1. 使用.NET7和C#11打造最快的序列化程序-以MemoryPack为例

    译者注 本文是一篇不可多得的好文,MemoryPack 的作者 neuecc 大佬通过本文解释了他是如何将序列化程序性能提升到极致的:其中从很多方面(可变长度.字符串.集合等)解释了一些性能优化的技巧 ...

  2. TS编写发布订阅模式

    interface PubSubType { events: { [key: string]: { name: string, once: boolean, cb: Function }[] } on ...

  3. Window系统的mysql数据库定时备份

    原文:Window系统的mysql数据库定时备份 - Stars-One的杂货小窝 最近老大提到了数据库备份的功能,由于服务器是window系统的,所以研究了下备份的方案,特此记录 主要是实现每天定时 ...

  4. Kubernetes(k8s)存储管理之数据卷volumes(五):动态制备-存储类StorageClass

    目录 一.系统环境 二.前言 三.静态制备和动态制备 四.存储类StorageClass 4.1 存储类StorageClass概览 4.2 StorageClass 资源 五.创建存储类Storag ...

  5. 论文解读丨【CVPR 2022】不使用人工标注提升文字识别器性能

    摘要:本文提出了一种针对文字识别的半监督方法.区别于常见的半监督方法,本文的针对文字识别这类序列识别问题做出了特定的设计. 本文分享自华为云社区<[CVPR 2022] 不使用人工标注提升文字识 ...

  6. Windows上使用QEMU创建银河麒麟ARM64虚拟机完全手册

    "好记性不如烂笔头." -- 张溥 0x00 大纲 目录 0x00 大纲 0x01 前言 0x02 物料准备 0x03 安装 QEMU 0x04 创建虚拟磁盘 0x05 安装麒麟系 ...

  7. Java学习笔记:2022年1月11日

    Java学习笔记:2022年1月11日 ​ 摘要:这篇笔记主要讲解了一些数据在计算机中的存在方式相关的知识点,并由此延伸出了数据在计算机中的操作以及一些数据结构的知识. @ 目录 Java学习笔记:2 ...

  8. YMOI 2019.6.29

    题解 YMOI 2019.6.29 放弃FAIOJ,用cena考了一次试.被全方位吊打.. T1 开灯 题面: 在一条无限长的路上,有一排无限长的路灯,编号为1,2,3,4,--. 每一盏灯只有两种可 ...

  9. ChatGPT/InstructGPT详解

    作者:京东零售 刘岩 前言 GPT系列是OpenAI的一系列预训练文章,GPT的全称是Generative Pre-Trained Transformer,顾名思义,GPT的目的就是通过Transfo ...

  10. Java入门与进阶 P4.1+P4.2

    表达积累的结果应该初始化为1 for循环 for循环像一个计数循环:设定一个计数器,初始化它,然后再计数器到达某值之前,重复执行循环体,而每执行一轮循环,计数器值以一定步骤进行调整,比如加 i 或者减 ...