मुझे किसी दिए गए जावास्क्रिप्ट ऑब्जेक्ट को कोणीय से बैकएंड (नेस्टजेएस) में भेजना है,

{
      service: {
        port: 3080,
      },
      datasource: {
        m3: {
          rest: {
            url: 'https://se/',
            username: 'di.com',
            password: 'B4',
          },
        },
        postgraphile: {
          url: 'https://gl',
          hostname: 'sg',
          port: 1133,
          database: 'MV',
          username: 'rr',
          password: '1',
        },
      },
      database: {
        pg: {
          hostname: 'ss.com',
          port: 5432,
          username: 'br',
          password: '1x',
          database: 'eb',
          synchronize: false,
        },
        mssql: {
          hostname: '10.100.100.100',
          port: 1133,
          database: 'MV',
          schema: 'MA',
          username: 'rr',
          password: 'we',
        },
        redis: {
          url: 'redis:///0',
        },
      },
      graphql: {
        playground: true,
      },
    }

मैंने डेटा भेजने के लिए इसे JSON ऑब्जेक्ट बनाने की कोशिश की,

var objKeysRegex = /({|,)(?:\s*)(?:')?([A-Za-z_$\.][A-Za-z0-9_ \-\.$]*)(?:')?(?:\s*):/g;// look for object names
var newQuotedKeysString = b.replace(objKeysRegex, "$1\"$2\":");// all object names should be double quoted
console.log(newQuotedKeysString);

मुझे अपेक्षित परिणाम मिला लेकिन अनुगामी अल्पविरामों के कारण इसे उचित JSON स्ट्रिंग बनाने में असमर्थ रहा, जिसका कुछ अल्पविरामों के बाद कोई मूल्य नहीं है। मुझे जो आउटपुट मिला वह था:

{"service": {"port": 3080,
      },"datasource": {"m3": {"rest": {"url": "https://se/","username": "di.com","password": "B4",
          },
        },"postgraphile": {"url": "https://gl","hostname": "sg","port": 1133,"database": "MV","username": "rr","password": "1",
        },
      },"database": {"pg": {"hostname": "ss.com","port": 5432,"username": "br","password": "1x","database": "eb","synchronize": false,
        },"mssql": {"hostname": "10.100.100.100","port": 1133,"database": "MV","schema": "MA","username": "rr","password": "we",
        },"redis": {"url": "redis:///0",
        },
      },"graphql": {"playground": true,
      },
    }

क्या इसके अलावा कोई अन्य तरीका है, या इसे वैध JSON प्रारूप बनाने के बारे में कोई विचार है।

0
Sadusha Nadeesh 18 अगस्त 2021, 20:45

2 जवाब

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

सबसे पहले हमें जावास्क्रिप्ट ऑब्जेक्ट (नेस्टेड ऑब्जेक्ट) प्राप्त करने की आवश्यकता है और ऑब्जेक्ट में प्रमुख मानों को दोहरे उद्धरण चिह्नों के साथ घेरना है और अनुगामी अल्पविराम के लिए मान्य करना है।

उस के लिए,

//replace '' with "".
let confJsonvalue = obj.replace(/'/g, '"');

//replace trailling comma
let regex = /\,(?=\s*?[\}\]])/g;
let sanitized = confJsonvalue.replace(regex, '');

let objKeysRegex =/({|,)(?:\s*)(?:')?([A-Za-z_$\.][A-Za-z0-9_ \-\.$]*)(?:')?(?:\s*):/g; // look for object names
let newQuotedKeysString = sanitized.replace(objKeysRegex, '$1"$2":'); // all object names/Keys should be double quoted.

JSON.parse(newQuotedKeysString);

JSON.stringify(obj); का उपयोग करने से ऑब्जेक्ट को केवल दोहरे उद्धरण चिह्नों के साथ घेर लिया जाएगा और एक स्ट्रिंग लौटा दी जाएगी। (नेस्टेड जावास्क्रिप्ट ऑब्जेक्ट्स के लिए यह पर्याप्त नहीं है)।

0
Sadusha Nadeesh 19 अगस्त 2021, 15:37

किसी JavaScript ऑब्जेक्ट को JSON स्ट्रिंग में बदलने के लिए, करें:

let str = JSON.stringify(obj);
1
Alexander van Oostenrijk 18 अगस्त 2021, 17:47