将字符串转换为JSON对象

2020/11/09 06:42 · javascript ·  · 0评论

您如何使JS认为字符串是JSON?

我有一个仅在将JSON对象传递给它的情况下才起作用的函数。如果我以与JSON相同的格式将字符串传递给它,则它不起作用。因此,我想让该函数认为传递给它的字符串是JSON。该字符串确实采用JSON格式。

我还尝试了以下方法。我通过Ajax输入了字符串,参数“ handle as”为“ JSON”,然后将结果传递给函数。

所以我推断出问题不在于字符串。如何将此字符串转换为JSON?如果我通过ajax请求获得相同的字符串,然后将其传递给函数有效,而直接传递则不起作用。

字符串如下:

  {
     "data": [
   {
  "id": "id1",
      "fields": [
        {
          "id": "name1",
          "label": "joker",
          "unit": "year"
        },
         {"id": "name2", "label": "Quantity"},
    ],
      "rows": [    data here....

and closing braces..

var obj = JSON.parse(string);

string您的json字符串在哪里

您可以使用JSON.parse()

参阅MDN上的文档

例:

var myObj = JSON.parse('{"p": 5}');
console.log(myObj);

我也遇到了类似字符串的问题

{id:1,field1:"someField"},{id:2,field1:"someOtherField"}

这里的问题是字符串的结构。在这种情况下,json解析器无法识别它需要创建2个对象。所以我做的有点愚蠢,我只是重新构造了我的字符串,并添加[]了解析器可以识别的

var myString = {id:1,field1:"someField"},{id:2,field1:"someOtherField"}
myString = '[' + myString +']'
var json = $.parseJSON(myString)

希望能帮助到你,

如果有人有更优雅的方法,请分享。

var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );

链接:-

http://api.jquery.com/jQuery.parseJSON/

使用对象映射器将字符串转换为HashMap ...

new ObjectMapper().readValue(string, Map.class);

在内部,Map将表现为JSON对象

只需使用eval功能。

var myJson = eval(theJsibStr);
var Data=[{"id": "name2", "label": "Quantity"}]

将字符串变量传递给Json parse:

Objdata= Json.parse(Data);

JSON.parse() 功能会做。

要么

使用Jquery,

var obj = jQuery.parseJSON( '{ "name": "Vinod" }' );
alert( obj.name === "Vinod" );

让我们考虑一下你有这样的字符串

示例:“名称:露西,年龄:21,性别:女”

function getJsonData(query){
    let arrayOfKeyValues = query.split(',');
    let modifiedArray =  new Array();
    console.log(arrayOfKeyValues);
    for(let i=0;i< arrayOfKeyValues.length;i++){
        let arrayValues = arrayOfKeyValues[i].split(':');
        let arrayString ='"'+arrayValues[0]+'"'+':'+'"'+arrayValues[1]+'"';
        modifiedArray.push(arrayString);
    }
    let jsonDataString = '{'+modifiedArray.toString()+'}';
    let jsonData = JSON.parse(jsonDataString);
    console.log(jsonData);
    console.log(typeof jsonData);
    return jsonData;
}

let query = "name:lucy,age:21,gender:female";
let response = getJsonData(query);
console.log(response);

`

本文地址:http://javascript.askforanswer.com/jiangzifuchuanzhuanhuanweijsonduixiang.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!