मेरे पास नीचे की तरह एक वस्तु है और अब मुझे दोहरे उद्धरण चिह्नों को हटाने की आवश्यकता है यदि कोई मान या तो संख्या या शून्य है। इन तीन मामलों के अलावा, दोहरे उद्धरण चिह्न मौजूद होने चाहिए।

ये सभी मान टेक्स्टबॉक्स से ला रहे हैं, अगर मैं 1234 के रूप में मान प्रदान करता हूं, तो इसे "1234" के रूप में जोड़ा जा रहा है।

तो, यहाँ ही मैं इस मुद्दे का सामना कर रहा हूँ। इससे कैसे बचें? कृपया सलाह दें

{
   "fruits":[{
     "name":"apple",
     "count":"4",
     "filter":{
        "unique":[{
              "attribute":"isFruit",
              "identifier":"9876"
           }],
        "match_attributes":{
           "location":"NewZeland",
           "subname":"null"
        },
        "match_expressions":[{
          "attribute":"value1",
          "operator":"In",
          "values":["test_value","4567","value7"]
       },
       {
          "attribute_name":"isvegetable",
          "operator":"In",
          "values":["15678"]
       }]
     }
  }]
}

मेरा अपेक्षित आउटपुट नीचे जैसा होना चाहिए,

{
   "fruits":[{
     "name":"apple",
     "count":4,
     "filter":{
        "unique":[{
              "attribute":"isFruit",
              "identifier": 9876
           }],
        "match_attributes":{
           "location":"NewZeland",
           "subname":null
        },
        "match_expressions":[{
          "attribute":"value1",
          "operator":"In",
          "values":["test_value",4567,"value7"]
       },
       {
          "attribute_name":"isvegetable",
          "operator":"In",
          "values":[15678]
       }]
     }
  }]
}

मैंने एकल मान का उपयोग करके निकालने का प्रयास किया

string.replace(/['"]+/g, '');

लेकिन क्या इसे पूरी वस्तु के लिए बदलने का कोई तरीका है। किसी भी सहायता की सराहना की जाएगी।

0
kalaiyarasi M 18 अप्रैल 2020, 14:02

1 उत्तर

सबसे बढ़िया उत्तर

आप उन विशेष मामलों के शब्दों को संभालने के लिए अपना खुद का पार्सर बना सकते हैं जिन्हें आप कनवर्ट करना चाहते हैं। इस मामले में 'सत्य', 'झूठा' और 'शून्य'

जहाँ तक संख्याओं का प्रश्न है, आप जाँच सकते हैं कि यह एक संख्या है या isNaN का उपयोग नहीं कर रही है, तो उसे प्रारूपित करें।

const input = {
   "fruits":[{
     "name":"apple",
     "count":"4",
     "filter":{
        "unique":[{
              "attribute":"isFruit",
              "identifier":"true"
           }],
        "match_attributes":{
           "location":"NewZeland",
           "subname":"null"
        },
        "match_expressions":[{
          "attribute":"value1",
          "operator":"In",
          "values":["test_value","4567","value7"]
       },
       {
          "attribute_name":"isvegetable",
          "operator":"In",
          "values":["false"]
       }]
     }
  }]
};

const dictionary = ["null", "true", "false"]

const parser = word => {
  wordWithoutQuotes = word.substring(1, word.length -1)
  if (dictionary.includes(wordWithoutQuotes) || !isNaN(wordWithoutQuotes)) return JSON.parse(word)
  
  return word
  
}
const output = JSON.stringify(input).replace(/".*?"/g, parser);

console.log(output)
2
Melchia 18 अप्रैल 2020, 11:58