精华内容
下载资源
问答
  • 如上,我在服务器返回了一段字符串,但XXX是我提前不知道的一些字符串,例如有时候XXX是name或者adress等等,现在我希望截取到:云南省昆明市五华区海屯路296号,网络招聘,汉族,通过,13877972996这些信息,应该...
  • 项目过程中经常打日志:LOG.error("[failure]...在一些日志处理过程中我们打印的日志可能是这个样的 XXX业务处理异常:{json字符串} 我们怎么获取到只包含json的字符串呢? 下面提供Java和JS两种方式: <wi...
    项目过程中经常打日志:LOG.error("[failure][CreateOrder] param:{}", JSON.toJSONString(userCreateOrderDTO),e);
     
    在一些日志处理过程中我们打印的日志可能是这个样的 XXX业务处理异常:{json字符串}
     
    我们怎么获取到只包含json的字符串呢?
     
    下面提供Java和JS两种方式:
    <wiz_code_mirror>
     
     
     
     
     
    function getJson(jsonStr) {
        var stringStack = new stack();
        var indexList = [];
        var jsonList = [];
        for (var i = 0; i < jsonStr.length; i++) {
            if (jsonStr.charAt(i) == '{' || jsonStr.charAt(i) == '[') {
                stringStack.push(new JsonStack(i, jsonStr.charAt(i)));
            } else if (jsonStr.charAt(i) == '}' || jsonStr.charAt(i) == ']') {
                if (stringStack.dataStore.length!=0) {
                    var js = stringStack.peek();
                    if (jsonStr.charAt(i) == '}' && js.char == '{') {
                        js = stringStack.pop();
                    } else if (jsonStr.charAt(i) == ']' && js.char == '[') {
                        js = stringStack.pop();
                    }
                    indexList.push(js.index);
                    indexList.push(i);
                }
            }
            if (stringStack.dataStore.length==0 && indexList.length > 0) {
                var tempStr = getJsonStr(indexList, jsonStr);
                if (!(tempStr == null || tempStr.length == 0)) {
                    jsonList.push(tempStr);
                }
                indexList.splice(0,indexList.length);;
            }
        }
        if (indexList != null && indexList.length > 0) {
            var tempStr = getJsonStr(indexList, jsonStr);
            if (!(tempStr == null || tempStr.length == 0)) {
                jsonList.push(tempStr);
            }
        }
        if (jsonList != null && jsonList.length > 0) {
            return jsonList[0];
        } else {
            return null;
        }
    }
    function getJsonStr(indexList, str) {
        var temp = "";
        for (var i = indexList.length - 1; i >= 0; i = i - 2) {
            try {
                temp = str.substring(indexList[i - 1], indexList[i] + 1);
                JSON.parse(temp);
                return temp;
            } catch (e) {
                continue;
            }
        }
        return null;
    }
    function JsonStack(index, char) {
        this.index = index;
        this.char = char;
    }
    function stack() {
        this.dataStore = [];//保存栈内元素,初始化为一个空数组
        this.top = 0;//栈顶位置,初始化为0
        this.push = push;//入栈
        this.pop = pop;//出栈
        this.peek = peek;//查看栈顶元素
        this.clear = clear;//清空栈
        this.length = length;//栈内存放元素的个数
    }
    function push(element) {
        this.dataStore[this.top++] = element;
    }
    function pop() {
        return this.dataStore[--this.top];
    }
    function peek() {
        return this.dataStore[this.top - 1];
    }
    function clear() {
        this.top = 0;
    }
    function length() {
        return this.top;
    }
     
     
    <wiz_code_mirror>
     
     
     
     
     
    package com.ucarinc.bizops.log;
    import com.alibaba.fastjson.JSON;
    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Stack;
    /**
     * Created by zhangbo on 2017/12/29.
     */
    public class FindJsonUtil {
        public static List<String> format(String jsonStr) {
            Stack<JsonStack> stringStack = new Stack<JsonStack>();
            List<Integer> indexList = new LinkedList<Integer>();
            List<String> jsonList = new ArrayList<String>();
            for (int i = 0;i<jsonStr.length();i++) {
                if(jsonStr.charAt(i)=='{'||jsonStr.charAt(i)=='['){
                    stringStack.push(new JsonStack(i,jsonStr.charAt(i)));
                }else if(jsonStr.charAt(i)=='}'||jsonStr.charAt(i)==']'){
                    if(!stringStack.empty()){
                        JsonStack js = stringStack.peek();
                        if(jsonStr.charAt(i)=='}'&&js.getStr() =='{'){
                            js = stringStack.pop();
                        }else if(jsonStr.charAt(i)==']'&&js.getStr() =='['){
                            js = stringStack.pop();
                        }
                        indexList.add(js.getIndex());
                        indexList.add(i);
                    }
                    if(stringStack.empty()){
                        String tempStr= getJsonStr(indexList,jsonStr);
                        if(!(tempStr==null||tempStr.isEmpty())){
                            jsonList.add(tempStr);
                        }
                        indexList.clear();
                    }
                }
            }
            if(indexList!=null && indexList.size()>0){
                String tempStr= getJsonStr(indexList,jsonStr);
                if(!(tempStr==null||tempStr.isEmpty())) {
                    jsonList.add(tempStr);
                }
            }
            return jsonList;
        }
        private static String getJsonStr(List<Integer> indexList,String str) {
            String temp= "";
            for(int i = indexList.size() -1 ; i>=0 ; i=i-2){
                try {
                    temp = str.substring(indexList.get(i - 1), indexList.get(i)+1);
                    JSON.parse(temp);
                    return str.substring(indexList.get(i - 1), indexList.get(i)+1);
                }catch (Exception e){
                    continue;
                }
            }
            return null;
        }
        static class JsonStack{
            private Integer index;
            private char str;
            public JsonStack(Integer index, char str) {
                this.index = index;
                this.str = str;
            }
            public Integer getIndex() {
                return index;
            }
            public void setIndex(Integer index) {
                this.index = index;
            }
            public Character getStr() {
                return str;
            }
            public void setStr(Character str) {
                this.str = str;
            }
        }
    }
     
     
     
     

    转载于:https://www.cnblogs.com/jgig11/p/8145903.html

    展开全文
  • 打比方,下面是我要匹配的字符串,规则是取出 #号后到"号前的字符串中的逗号(,) ``` {"10#a,a":"aaa", "11#d,a":"ada", "12#dd,asa": "da"} ``` 下面是我写出来的正则: ``` /((?).*?(?="))/g ``` 效果...
  • C#读取JSON字符串

    2016-03-28 16:49:00
    下面这个是一段JSON字符串宏观图 下面我们通过C#读取JSON字符串里的任何一个数值 string jsonString="上面JSON字符串"; //需要引用Newtonsoft.Json.dll JObject json = JObject.Parse(jsonString); //下面...

    下面这个是一段JSON字符串宏观图

    下面我们通过C#读取JSON字符串里的任何一个数值

    string jsonString="上面JSON字符串";
    //需要引用Newtonsoft.Json.dll
    JObject json = JObject.Parse(jsonString);
    //下面我们读取JSON字符串的第一级里的任何值,如下
    string page=json["Page"].toString();
    string count=json["Count"].toString();
    string pagesize=json["PageSize"].toString();
    //现在读取List,因为它是一个列表的形式,读取出来的类型为:Newtonsoft.Json.Linq.JArray
    JArray list=json["List"];
    foreach (var arry in list)
    {
        Console.WriteLine(arry["title"]);
    }
    

     

    转载于:https://www.cnblogs.com/lb809663396/p/5329651.html

    展开全文
  • 从服务器端获取一段JSON字符串,使用就jQuery解析该字符串,并动态添加到列表
  • API的应用通常会处理json数据,刚好今天看到了json字符串和python字符串的区别,放一段代码,区别一下子就看出来,的确json 库为处理Json 数据提供了不少的便利。 import json jsonString = '{"arrayOfNums":[{...
  • C#解析JSON字符串

    千次阅读 2018-04-23 14:44:33
    C#解析JSON字符串 C#解析JSON字符串 需求 方案 1 2 ...吃水不忘打井人,参考的园子里轩辕箭的文章《c#...有这样一段json,需要获取这段json里面的title_list内的信息。 { "alipay_ebpp_invoice_title_lis...

    C#解析JSON字符串


    吃水不忘打井人,参考的园子里轩辕箭的文章《c#解析json字符串处理(最清晰易懂的方法)》,在此拜谢。


    需求

    有这样一段json,需要获取这段json里面的title_list内的信息。

    {
        "alipay_ebpp_invoice_title_list_get_response": {
            "code": "10000",
            "msg": "Success",
            "title_list": [
                {
                    "user_id": "2088000000000000",
                    "title_name": "网络技术有限公司",
                    "title_type": "CORPORATION",
                    "is_default": true,
                    "user_mobile": "13900000000",
                    "tax_register_no": "123",
                    "user_address": "杭州市 西湖区 天目山路 黄龙时代广场",
                    "open_bank_name": "中国建设银行",
                    "open_bank_account": "6332000010001000"
                }
            ]
        },
        "sign": "EEEEEEEEEEEEEEEEEEEEEEREEEEEEEEEEE"
    }

    方案

    1

    先将JSON转换为string字符串,各种给双引号加反斜杠”\“。提供一个神器JSON压缩转义的网站,操作如图:
    JSON压缩转义
    转义之后可以直接赋值给字符串。

    2

    C#内应该添加引用:using Newtonsoft.Json;

    3

    将JSON转换为实体类,这里要介绍第二个神器JSON生成实体类,操作如图:
    JSON生成实体类

    4

    把生成的实体类复制到我们的代码中即可

    public class Title_list
    {
        /// <summary>
        /// 2088000000000000
        /// </summary>
        public string user_id { get; set; }
        /// <summary>
        /// 网络技术有限公司
        /// </summary>
        public string title_name { get; set; }
        /// <summary>
        /// CORPORATION
        /// </summary>
        public string title_type { get; set; }
        /// <summary>
        /// Is_default
        /// </summary>
        public bool is_default { get; set; }
        /// <summary>
        /// 13900000000
        /// </summary>
        public string user_mobile { get; set; }
        /// <summary>
        /// 123
        /// </summary>
        public string tax_register_no { get; set; }
        /// <summary>
        /// 杭州市 西湖区 天目山路 黄龙时代广场
        /// </summary>
        public string user_address { get; set; }
        /// <summary>
        /// 中国建设银行
        /// </summary>
        public string open_bank_name { get; set; }
        /// <summary>
        /// 6332000010001000
        /// </summary>
        public string open_bank_account { get; set; }
    }
    
    public class Alipay_ebpp_invoice_title_list_get_response
    {
        /// <summary>
        /// 10000
        /// </summary>
        public string code { get; set; }
        /// <summary>
        /// Success
        /// </summary>
        public string msg { get; set; }
        /// <summary>
        /// Title_list
        /// </summary>
        public List<Title_list> title_list { get; set; }
    }
    
    public class Root
    {
        /// <summary>
        /// Alipay_ebpp_invoice_title_list_get_response
        /// </summary>
        public Alipay_ebpp_invoice_title_list_get_response alipay_ebpp_invoice_title_list_get_response { get; set; }
        /// <summary>
        /// ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE
        /// </summary>
        public string sign { get; set; }
    }

    5

    反序列化json字符串得到对象。

    Root rb = JsonConvert.DeserializeObject<Root>(strJson);

    6

    处理对象,如输出user_id

    string user_id = rb.alipay_ebpp_invoice_title_list_get_response.title_list[0].user_id;

    7

    循环获取title_list内的数据:

    Title_list[] list = new Title_list[99];
    int index = 0;
    foreach (Title_list ep in rb.alipay_ebpp_invoice_title_list_get_response.title_list)
    {   
        list[index] = new Title_list();
        list[index].user_id = ep.user_id;
        list[index].title_name = ep.title_name;
        list[index].title_type = ep.title_type;
        list[index].is_default = ep.is_default;
        list[index].user_mobile = ep.user_mobile;
        list[index].tax_register_no = ep.tax_register_no;
        list[index].user_address = ep.user_address;
        list[index].open_bank_name = ep.open_bank_name;
        list[index].open_bank_account = ep.open_bank_account;
        index = list.Length;            
    }
    展开全文
  • 自己写的工具,可以输入一段JSON字符串,自动生成iOS的模型文件,代码是用OC写的,模型文件是JSONModel的格式。
  • 时间做了个前端mock静态数据系统,有这样的个速求:把所有非正规的json转换为正常的json(最大容忍限度)经过博主的敲打最后封装成如下的函数,在此做次记录,也给有需要的人提供个参考意见:测试字符串:{ ...
    前段时间做了一个前端mock静态数据系统,有这样的一个速求:

    把所有非正规的json转换为正常的json(最大容忍限度)

    经过博主的敲打最后封装成如下的函数,在此做次记录,也给有需要的人提供一个参考意见:

    测试字符串:

    {
    	name:'zhang san',
    }
    
    {
    	‘name’:'zhang san',
    }
    
    {
    	‘name’:'zhs'a'ng san',
    }
    
    {
    	"name’:'zhs“a'ng san',
    }
    
    {
    	"na‘me’:'zhs“a'ng san',
    	age':25
    }
    
    {
    	"na‘me’:zhs“a'ng san,
    	age:'25
    }
    
    {
    	"na‘me’:'zhs“a"ng san',
    	age: '2'5
    }复制代码


    ToJson函数

    // 不和规范的json 转换成符合规范的JSON
    	toJson(json) {
    		let copyJson = json;
    		if (!copyJson) return;
    		// 替换不正常的 { 号
    		copyJson = copyJson.replace(/{/g, '{')
    		// 替换不正常的 } 号
    		copyJson = copyJson.replace(/}/g, '}')
    		// 替换不正常的 : 号
    		copyJson = copyJson.replace(/:/g, ':')
    		// 去掉所有的空格
    		copyJson = copyJson.replace(/s/g, '')
    		// 替换所有的 引号
    		copyJson = copyJson.replace(/['‘“’”]/g, '"')
    		// 替换value值中的双引号
    		copyJson = copyJson.replace(/"(?=([ws-_d.*u4E00-u9FA5uf900-ufa2d]+?))/g, '’')
    		// 替换不正常的 , 号
    		copyJson = copyJson.replace(/[,]/g, ',')
    		// 替换 undefined 为字符串
    		copyJson = copyJson.replace(/["']?undefined["']?/g, '"undefined"')
    		// 替换所有}之前的,号
    		copyJson = copyJson.replace(/,}/g, '}')
    
    		try {
    			// 若正常直接返回
    			JSON.parse(copyJson);
    			return copyJson;
    		} catch (err) {
    			// 不正常开始替换
    			copyJson = copyJson.replace(/{"?([u4E00-u9FA5uf900-ufa2d'"dw_-]*?)"?:/g,($a,$b)=>{
    				return `{"${$b}":`;
    			}) 
    			copyJson = copyJson.replace(/,"?([u4E00-u9FA5uf900-ufa2d'"dw_-]*?)"?:/g,($a,$b)=>{
    				return `,"${$b}":`;
    			})
    			
    			return copyJson
    		}
    	};复制代码



    以上函数仅供参考,希望对你有所帮助,若有更好的方案欢迎给我留言额。



    关注我的博客:zane的个人博客


    展开全文
  • API的应用通常会处理json数据,刚好今天看到了json字符串和python字符串的区别,放一段代码,区别一下子就看出来,的确json 库为处理Json 数据提供了不少的便利。import jsonjsonString = '{"arrayOfNums":[{"number...
  • 我们在使用AJAX来做服务器端和客户端交互的时候,一般的做法是让服务器端返回一段JSON字符串,然后在客户端把它解析成JavaScript对象。
  • API的应用通常会处理json数据,刚好今天看到了json字符串和python字符串的区别,放一段代码,区别一下子就看出来,的确json 库为处理Json 数据提供了不少的便利。import jsonjsonString = '{"arrayOfNums":[{"number...
  • 用extjs也有一段时间了,但有些东西就是记不住,就比如json字符串和json对象的转换,我还是把它记下来。 将json字符串转为json对象 var str = '{ "name": "张三", "age": "23&...
  • Python解析json字符串

    2016-05-04 13:48:00
    {"status":0,"result":{"location":{"lng":116.47847460177,"lat":39.922450422051},"precise":0,"confidence":...使用Python中的json模块解析上一段json字符串。 首先引用json模块: import json data='{...
  • json字符串转数组

    2016-09-20 18:04:58
     将个list转换为了json字符串  前我要把获取到的数据展示出来,这里有时候不转换为数组也可以用  在for循环这个list之前,建议把返回的json字符串先转换为数组,这里我用最简单的方法,网上还有几种方法的...
  • 假设我在PowerShell字符串中有一段JSON,例如$s = '{"foo":"hello"}'我的目标是将其转换为我可以操作的对象(例如,更改/添加属性),然后转换回json字符串.所以试着显而易见,我写道:$o = $s | ConvertFrom-Json # ...
  • 保存阶段作为JSON字符串,KineticJS,我们可以使用toJSON()方法KineticJS序列化成文本的节点树,可以保存在web存储或离线数据库。我们也可以序列化其他节点,包括层、组和形状。 body { margin: 0px; ...
  • 以前需要将一段json字符串转换为C#对象时,一般都是定义一个与之对应的实体类来接收。这样做有一个很大的缺点,就是当字符串特别长,属性特别多,又有嵌套时,手敲这个实体类就非常痛苦。 比如之前做的一个接收百度...
  • 我们在使用AJAX来做服务器端和客户端交互的时候,一般的做法是让服务器端返回一段JSON字符串,然后在客户端把它解析成JavaScript 对象。解析时用到的方法一般是eval或者new function,而目前IE8和Firefox3.1又内置了...
  • json字符串化循环引用JS JSON.stringify大家已经不陌生了,是一个将json对象转换为字符串的方法。但是如果你在浏览器控制台中输出 JSON.stringify(window). 如果期望输出一段文字, 可能会失望了. 事实上, 会输出结果...
  • 首先看一段json字符串: { "name": "liangchaojie" } 再看一个Person类: public class Person implements Serializable{ /** * id : 01 * name : liangchaojie * age : 23 */ private Str
  • java解析json字符串

    万次阅读 2013-02-24 13:26:05
    json现在也被作为种主要的数据交换格式,不仅在网页上能用还可以用到类似智能手机...1.下面来看下这段json字符串,生成这样的字符串可以使用JSON开发包也可以自己拼接字符串 { "cityInfo": [ { "cityId": "001",
  • **当前或者其他系统调用我们接口时,如果传json字符串,我们需要绑定json实体对象来接受时,但是无法接受,或者某个字段值无法绑定,这就是json字符串绑定的时候,对小写解析的问题,直接做法就是使用spring ...
  • 其中,有如何把json字符串转化成C#类对象,其实这代码很多人都清楚,大家也都认识,我不多说,先贴代码。  1、添加引用 System.Web.Extensions  2、测试一下代码 1 static class Program 2 { 3 /// ...
  • 最近对自己写的elasticsearch客户端框架在进行性能优化,数据插入部分使用的是JAVABean对象方式传参,框架内部使用了fastjson进行对象转json字符串的操作,尝试着使用不同方式进行对象转json字符串操作。找到了种...
  • Json字符串转实体

    2019-02-09 14:01:37
    先来一段字符串: string jsonString = &amp;quot;{\&amp;quot;log_id\&amp;quot;:119047692893297896,\&amp;quot;direction\&amp;quot;:0,\&amp;quot;words_result_num\&amp;quot;:30...
  • .IOS原生数据请求与数据解析 IOS开发中原始的数据请求是以字符串的形式,字符串参数传到服务器,然后接收服务器返回的字符串进行解析。 通常个完整的数据请求过程中数据处理经...4.将json字符串(或加密后的密文
  • 这是说json字符串中有格式不符合解析规范,这范围太大了,于是我逐的进行排查,终于我在字符串中看到了'\n',心中大喜,卧槽,肯定就是这玩意了,然后排查果然是,JSON.parse()函数不能直解析特殊字符,特殊...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 882
精华内容 352
关键字:

一段json字符串