Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON解析不解析字符串(位置0处JSON中的nexpected标记D)_Javascript_Json - Fatal编程技术网

Javascript JSON解析不解析字符串(位置0处JSON中的nexpected标记D)

Javascript JSON解析不解析字符串(位置0处JSON中的nexpected标记D),javascript,json,Javascript,Json,传递给JSON.parsel字符串时,函数objChecker不起作用,但在JSON中的位置0处得到错误标记D 尝试先执行json stringify,但它总是返回字符串,而不是对象, 我想做的主要想法是,如果它是来自arr的某个元素,将其解析为object您的数组还包含非JSON的字符串,并且无法解析。如果要跳过这些,请确保在JSON.parse周围放置一个try catch: let str = 'Delete {%{"color":"#fff","content":"1"}%} item

传递给JSON.parsel字符串时,函数objChecker不起作用,但在JSON中的位置0处得到错误标记D 尝试先执行json stringify,但它总是返回字符串,而不是对象,
我想做的主要想法是,如果它是来自arr的某个元素,将其解析为object

您的数组还包含非JSON的字符串,并且无法解析。如果要跳过这些,请确保在JSON.parse周围放置一个try catch:

let str = 'Delete {%{"color":"#fff","content":"1"}%} item from my server';

    const reworkString = (str) => {
      let separators = ['{%', '%}'];
      let newStr = str.split(new RegExp(separators.join('|'), 'g'));

      const objChecker = (el) => {
       JSON.parse(el)
       console.log(el)
       return elm.hasOwnProperty('content');
      }

      newStr = newStr.map(item=>{
        if (objChecker(item)) {
          return 'good'
        }
        else {
          return item
        }
      })


    }

    reworkString(str);

没关系,但它就像字符串一样,为什么不是对象呢?
let str = 'Delete {%{"color":"#fff","content":"1"}%} item from my server';

    const reworkString = (str) => {
      let separators = ['{%', '%}'];
      let newStr = str.split(new RegExp(separators.join('|'), 'g'));

      const objChecker = (el) => {
       try {
           JSON.parse(el)
       } catch (e) {
           return false;
       }
       return el.hasOwnProperty('content');
      }

      newStr = newStr.map(item=>{
        if (objChecker(item)) {
          return 'good'
        }
        else {
          return item
        }
      })

    }

    reworkString(str);