簡體   English   中英

將字符串轉換為 JSON 對象

[英]Converting a string to JSON object

你如何讓 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);
var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );

關聯:-

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

我對像你這樣的類似字符串也有同樣的問題

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

希望能幫助到你,

如果有人有更優雅的方法,請分享。

只需使用eval函數。

var myJson = eval(theJsibStr);

使用 Object Mapper 將字符串轉換為 HashMap ...

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

內部 Map 將表現為 JSON 對象

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

`

JSON.parse()是你的朋友。 這是一個例子:

let obj = JSON.parse(yourString)
console.log(typeof obj); // prints 'object' assuming your string is correctly formatted

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM