স্ট্রিংটিকে JSON অবজেক্টে রূপান্তর করা হচ্ছে


148

আপনি কীভাবে জেএসকে মনে করেন যে একটি স্ট্রিং জেএসএন?

আমার একটি ফাংশন রয়েছে যা কেবলমাত্র JSON অবজেক্টের কাছে পাঠানো হলে কাজ করে। আমি যদি এটিতে JSON এর মতো একই ফর্ম্যাট দিয়ে একটি স্ট্রিং পাস করি তবে এটি কার্যকর হয় না। সুতরাং আমি সেই ফাংশনটিকে ভাবতে চাই যে এতে স্ট্রিংটি একটি জেএসএন passed স্ট্রিংটি আসলে JSON ফর্ম্যাটে রয়েছে।

আমি নিম্নলিখিত চেষ্টা করেও। আমি আজাক্সের মাধ্যমে স্ট্রিংটিকে "জেএসওএন" হিসাবে "পরামিতি হিসাবে" হ্যান্ডেল দিয়ে ইনপুট করেছিলাম এবং তারপরে যখন আমি ফলাফলটি ফাংশনে পাস করি তখন এটি কাজ করে।

সুতরাং আমি সিদ্ধান্ত নিয়েছি সমস্যাটি স্ট্রিংয়ের সাথে নয়। আমি কীভাবে এই স্ট্রিংটিকে JSON এ রূপান্তর করব? যদি আমি এজাক্স অনুরোধের মাধ্যমে একই স্ট্রিংটি পাই এবং তারপরে এটি ফাংশনে প্রেরণ করা হয়, যেখানে সরাসরি পাস করা এটি কাজ করে না।

স্ট্রিংটি নিম্নরূপ:

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

and closing braces..


2
আপনার শিরোনাম বিভ্রান্তিকর। আপনার প্রশ্নের সামগ্রীর উপর ভিত্তি করে আমি বরং বলব আপনি JSON যুক্ত স্ট্রিংটিকে একটি জাভাস্ক্রিপ্ট অবজেক্ট / অ্যারেতে রূপান্তর করতে চান।
ফেলিক্স ক্লিং

ঠিক আছে আমি এটি সমাধান করেছি। স্ট্রিংটিতে একটি \ n ছিল। এখন কেবল কীভাবে এটি ব্যবহার করে JSON.pars ব্যবহার করবেন তা খুঁজে বের করতে হবে।
জের0

ঠিক আছে আমি এটা ঠিক করেছি। এতে যান jsonlint.com এবং সেখানে আপনার স্ট্রিং রাখে। যদি এটির সঠিকটি বলে, তবে আপনি এটি অর্জন করতে JSONParse ব্যবহার করতে পারেন।
জের0

যদি কেউ এটি পড়েন তবে শিরোনামটি "একটি জেএসএন স্ট্রিংকে একটি বস্তুতে রূপান্তর করা" বলে মনে করা হচ্ছে
ক্রিস জি

উত্তর:


353
var obj = JSON.parse(string);

stringআপনার জসন স্ট্রিং কোথায় ।


এটি কাজ করছে না। এটি একটি ত্রুটি নিক্ষেপ করছে "সিনট্যাক্স এরির: জেএসএন.পারস: অপ্রত্যাশিত চরিত্র"। স্ট্রিংটিতে কোনও ভুল নেই কারণ যখন আমি এজাক্স অনুরোধের মাধ্যমে একই স্ট্রিংটি পাই এবং এটিকে "জেএসওএন" হিসাবে পরিচালনা করি তবে কোনও সমস্যা হয় না।
জের 0

পোষ্ট দয়া করে আপনার acutal JSON স্ট্রিংকে
Kshitij

data "ডেটা": [{আইডি ": - আপনি এখানে একটি ডাবল উদ্ধৃতি মিস করছেন, অর্থাত আইডির ডাবল উদ্ধৃতি শুরু করছেন
ক্ষিতিজ

2
আমি যখন এটি আজাক্সের মাধ্যমে পেয়েছি তখন এটি JSON হিসাবে প্রতিক্রিয়াটি পরিচালনা করে as সুতরাং আমি মনে করি আমাকে এটিকে একটি JSON বস্তুতে রূপান্তর করতে হবে ..
জের 0

2
আমি jsonlint.com এ গিয়ে শেষ করেছি এবং আমার জেসন ঠিক আছে তা নিশ্চিত করে নিয়েছে
Zer0

26

আপনি এটির JSON.parse()জন্য ব্যবহার করতে পারেন ।

MDN এ ডক্স দেখুন

উদাহরণ:

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

1
এটি কাজ করছে না। এটি একটি ত্রুটি নিক্ষেপ করছে "সিনট্যাক্স এরির: জেএসএন.পারস: অপ্রত্যাশিত চরিত্র"। স্ট্রিংটিতে কোনও ভুল নেই কারণ যখন আমি এজাক্স অনুরোধের মাধ্যমে একই স্ট্রিংটি পাই এবং এটিকে "জেএসওএন" হিসাবে পরিচালনা করি তবে কোনও সমস্যা হয় না।
জের 0

2
@ জের0: আপনি কীভাবে আপনার জসন স্ট্রিংয়ের সাথে এটি চেষ্টা করছেন তা নিয়ে আপনার প্রশ্নটি আপডেট করা উচিত।
সরফরাজ

4
@ জের0: আমরা কেবল আমাদের জ্ঞানের সেরা উত্তর দিতে পারি। আপনি বলছেন আপনার কাছে একটি JSON স্ট্রিং রয়েছে, আমরা সেই অনুযায়ী উত্তর দেব। আপনার স্ট্রিংটি আলাদা বলে মনে হচ্ছে, আপনি যদি এটি পোস্ট করেন তবে আমরা এটি অ্যাকাউন্টে নেওয়ার জবাব দিতে পারি। আপনি কোডিং সম্পর্কে কোনও প্রশ্ন জিজ্ঞাসা করলে কোড / ডেটা অনিবার্য।
ফেলিক্স ক্লিং

7

আপনার মতো একই স্ট্রিং নিয়ে আমার একই সমস্যা ছিল

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

এখানে সমস্যাটি স্ট্রিংয়ের কাঠামো। জসন পার্সার চিনতে পারছিল না যে এই ক্ষেত্রে এটির জন্য 2 টি বস্তু তৈরি করা দরকার needs সুতরাং আমি যা করেছি তা নির্বোধ, আমি কেবল আমার স্ট্রিংটিকে পুনর্গঠিত করেছি এবং []পার্সারটি স্বীকৃত এটি দিয়ে যুক্ত করেছি

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
করছিলাম


3

অবজেক্ট ম্যাপার ব্যবহার করে স্ট্রিংটিকে হ্যাশম্যাপে রূপান্তর করুন ...

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

অভ্যন্তরীণ মানচিত্রটি JSON অবজেক্ট হিসাবে আচরণ করবে


2
var Data=[{"id": "name2", "label": "Quantity"}]

স্ট্রিং ভেরিয়েবলটি জসন পার্সে পাস করুন:

Objdata= Json.parse(Data);

আপনার উদাহরণে, Dataইতিমধ্যে একটি অবজেক্ট, তাই এটি বিশ্লেষণ করার প্রয়োজন হবে না। আপনার স্ট্রিংটি তৈরি করতে আপনার সমস্ত ডেটা ঘিরে আপনার কিছু উদ্ধৃতি প্রয়োজন।
জেমস এবারহার্ট

2

কেবল evalফাংশন ব্যবহার করুন।

var myJson = eval(theJsibStr);

Eval মন্দ এই পদ্ধতির সাথে নিরাপত্তা খুব সতর্কতা অবলম্বন করা আবশ্যক হয়
dparker

0

JSON.parse() ফাংশন করবে।

অথবা

জ্যাকুরি ব্যবহার করে,

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

0

আসুন আমরা আপনার মত স্ট্রিং আছে বিবেচনা করুন

উদাহরণ: "নাম: লুসি, বয়স: 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);

`

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.