将字符串转换为 JSON 对象

     2023-02-22     9

关键词:

【中文标题】将字符串转换为 JSON 对象【英文标题】:Converting a string to JSON object 【发布时间】:2012-06-14 04:03:03 【问题描述】:

如何让 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..

【问题讨论】:

Safely turning a JSON string into an object 的可能重复项 您的标题具有误导性。根据您问题的内容,我宁愿说您想将包含 JSON 的字符串转换为 JavaScript 对象/数组。 好的,我解决了。字符串中有一个 \n。现在只需要弄清楚如何使用 JSON.parse。 好的,我修好了。转到jsonlint.com 并将您的字符串放在那里。如果它说它是正确的,那么你可以使用 JSONParse 来实现同样的效果。 如果有人读到这个,标题应该是“将 JSON 字符串转换为对象” 【参考方案1】:
var obj = JSON.parse(string);

string 是您的 json 字符串。

【讨论】:

这不起作用。它抛出错误 "SyntaxError: JSON.parse: unexpected character" 。字符串没有问题,因为当我通过 ajax 请求获得相同的字符串并将其作为“JSON”处理时,不会出现问题。 请发布您的实际 JSON 字符串 "data": [ id": - 你在这里缺少双引号,即开始 id 的双引号 当我通过 Ajax 获取它时,它会像处理 JSON 一样处理响应。所以我想我必须将它转换为 JSON 对象.. 我最终去了 jsonlint.com,并确保我的 Json 是正确的【参考方案2】:

您可以为此使用JSON.parse()

See docs at MDN

示例:

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

【讨论】:

这不起作用。它抛出错误 "SyntaxError: JSON.parse: unexpected character" 。字符串没有问题,因为当我通过 ajax 请求获得相同的字符串并将其作为“JSON”处理时,不会出现问题。 @Zer0:你应该用你的json字符串来更新你的问题。 @Zer0:我们只能尽我们所能回答。你说你有一个 JSON 字符串,我们相应地回答。您的字符串似乎不同,如果您发布它,我们可以考虑到这一点来回答。如果你问一个关于编码的问题,那么代码/数据是必不可少的。【参考方案3】:
var obj = jQuery.parseJSON('"name":"John"');
alert( obj.name === "John" );

链接:-

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

【讨论】:

【参考方案4】:

我遇到了与你类似的字符串同样的问题

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)

希望对你有帮助,

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

【讨论】:

在上面的代码中,您错误地构造了myString。它不是一个字符串,它的 JSON 格式不正确。然后,您的第二行将变得多余。应该是这样的:var myString = '["id":1,"field1":"someField","id":2,"field1":"someOtherField"]' 我知道这是一篇很老的帖子,但我想我会添加一些说明以防万一有人发现它。 我使用$.parseJSON 解决了我的问题,其中JSON.parse 不起作用并引发错误JSON.parse is not a function【参考方案5】:

只需使用eval 函数。

var myJson = eval(theJsibStr);

【讨论】:

eval 是邪恶的,使用这种方法要非常小心安全【参考方案6】:

使用 Object Mapper 将字符串转换为 HashMap ...

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

内部 Map 将表现为 JSON 对象

【讨论】:

【参考方案7】:
var Data=["id": "name2", "label": "Quantity"]

将字符串变量传递到 Json 解析中:

Objdata= Json.parse(Data);

【讨论】:

在您的示例中,Data 已经是一个对象,因此无需解析它。您需要在所有数据周围加上引号才能使其成为字符串。【参考方案8】:

让我们假设你有像

这样的字符串

示例:"name:lucy,age:21,gender:female"

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);

`

【讨论】:

【参考方案9】:

JSON.parse() 函数可以。

使用 Jquery,

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

【讨论】:

将对象转换为 JSON 字符串

】将对象转换为JSON字符串【英文标题】:ConvertObjecttoJSONstring【发布时间】:2011-04-2316:29:40【问题描述】:jQuery.parseJSON(\'"name":"John"\')将字符串表示形式转换为对象但我想要相反。对象将被转换为JSON字符串我有一... 查看详情

js将json字符串转换为json对象或json对象转换成json字符串

JSON字符串:varstr1=‘{"name":"cxh","sex":"man"}‘; JSON对象:varstr2={"name":"cxh","sex":"man"};一、JSON字符串转换为JSON对象要使用上面的str1,必须使用下面的方法先转化为JSON对象://由JSON字符串转换为JSON对象varobj=eval(‘(‘+str+‘)‘);或者va... 查看详情

jackson将java对象转换为json字符串

JackSon可以将java对象转换为JSON字符串,步骤如下:1.导入JackSon的jar包2.创建ObjectMapper对象3.使用ObjectMapper对象的writeValueAsString()方法将java对象转换为JSON对象这里有个例子:publicclassFruit{privateStringname;privateStringid;publicCustomet(Stri 查看详情

js将json字符串转换为json对象的方法解析

例如:JSON字符串:varstr1=‘{"name":"cxh","sex":"man"}‘; JSON对象:varstr2={"name":"cxh","sex":"man"};一、JSON字符串转换为JSON对象要使用上面的str1,必须使用下面的方法先转化为JSON对象://由JSON字符串转换为JSON对象varobj=eval(‘(‘+str+‘)‘)... 查看详情

将 JSON 字符串转换为 C# 对象

】将JSON字符串转换为C#对象【英文标题】:ConvertJSONStringToC#Object【发布时间】:2022-01-0119:26:01【问题描述】:尝试将JSON字符串转换为C#中的对象。使用一个非常简单的测试用例:JavaScriptSerializerjson_serializer=newJavaScriptSerializer();obje... 查看详情

将 JSON 字符串转换为 C# 对象

】将JSON字符串转换为C#对象【英文标题】:ConvertJSONStringToC#Object【发布时间】:2011-06-0409:44:26【问题描述】:尝试将JSON字符串转换为C#中的对象。使用一个非常简单的测试用例:JavaScriptSerializerjson_serializer=newJavaScriptSerializer();obje... 查看详情

如何将数据实体转换为json字符串

将数据实体转换为JSON字符串的方法:先将java对象转换为json对象,在将json对象转换为json字符串JSONObjectjson=JSONObject.fromObject(obj);//将java对象转换为json对象Stringstr=json.toString();//将json对象转换为字符串参考代码如下:packagebaz.parse;im... 查看详情

无法将字符串转换为 Json 对象

】无法将字符串转换为Json对象【英文标题】:Can\'tconvertstringintoJsonobject【发布时间】:2015-11-1017:29:37【问题描述】:我有一个json字符串(text2):"\\"MsgType\\":103,\\"Msg\\":\\"\\"UserObject\\":\\"SecretId\\":\\"dsofgihsdaoifhad=\\",\\"FirstName\\":\\"ASDG... 查看详情

如何将数据实体转换为json字符串

参考技术A将数据实体转换为JSON字符串的方法:先将java对象转换为json对象,在将json对象转换为json字符串JSONObjectjson=JSONObject.fromObject(obj);//将java对象转换为json对象Stringstr=json.toString();//将json对象转换为字符串参考代码如下:packag... 查看详情

使用 json.simple 将字符串转换为 json 对象

】使用json.simple将字符串转换为json对象【英文标题】:Convertingstringtojsonobjectusingjson.simple【发布时间】:2015-08-2518:03:21【问题描述】:我正在使用org.json.simple.JSONObject。我想将string转换为Jsonobject。Stringvalue=request.getParameter("savepos")... 查看详情

如何将大型 JSON 字符串转换为 JSON 对象?

】如何将大型JSON字符串转换为JSON对象?【英文标题】:HowtoconvertalargeJSONstringtoJSONObject?【发布时间】:2021-02-2109:39:23【问题描述】:我的spring应用程序向服务器发出了一个休息请求,并且来自服务器的响应是一个JSONObject字符串... 查看详情

JavaScriptSerializer 不会将 Json 字符串转换为对象? [关闭]

】JavaScriptSerializer不会将Json字符串转换为对象?[关闭]【英文标题】:JavaScriptSerializerdoesnotconvertJsonstringtoobject?[closed]【发布时间】:2020-03-3021:52:35【问题描述】:下面的代码没有返回任何错误,但仍然没有将JSON转换为对象我从AP... 查看详情

如何将json转换为字符串

】如何将json转换为字符串【英文标题】:howtoconvertjsontostring【发布时间】:2011-03-2314:34:21【问题描述】:如何将json对象转换为字符串我想将一个json对象插入一个mysql数据库【问题讨论】:究竟什么是php中的“json对象”?json_enco... 查看详情

js将json字符串转换为json对象的方法解析

JSON字符串:varstr1=‘{"name":"cxh","sex":"man"}‘; JSON对象:varstr2={"name":"cxh","sex":"man"};要使用上面的str1,必须使用下面的方法先转化为JSON对象://由JSON字符串转换为JSON对象varobj=eval(‘(‘+str+‘)‘)orvarobj=str.parseJSON()然后,就可以这... 查看详情

使用 JSON.stringify 将对象转换为字符串显示空对象 [重复]

】使用JSON.stringify将对象转换为字符串显示空对象[重复]【英文标题】:convertobjecttostringusingJSON.stringifyshowemptyobject[duplicate]【发布时间】:2018-12-0918:49:00【问题描述】:我正在尝试使用JSON.stringify将对象转换为字符串,但我得到了... 查看详情

如何将 Java 字符串转换为 JSON 对象

】如何将Java字符串转换为JSON对象【英文标题】:HowtoconvertJavaStringtoJSONObject【发布时间】:2015-05-2419:48:22【问题描述】:之前有人问过这个问题,但我无法从对这些问题的回答中找出代码中的错误。我正在尝试将java字符串转换... 查看详情

将json字符串转换成json对象

例如:JSON字符串:varstr1=‘{"name":"cxh","sex":"man"}‘;JSON对象:varstr2={"name":"cxh","sex":"man"};一、JSON字符串转换为JSON对象要使用上面的str1,必须使用下面的方法先转化为JSON对象://由JSON字符串转换为JSON对象varobj=eval(‘(‘+str+‘)‘);或... 查看详情

将字符串转换为 JSON 对象

】将字符串转换为JSON对象【英文标题】:ConvertingastringtoJSONobject【发布时间】:2012-06-1404:03:03【问题描述】:如何让JS认为一个字符串是JSON?我有一个函数,它只在JSON对象传递给它时才有效。如果我向它传递一个与JSON格式相同... 查看详情