मुझे यकीन नहीं है कि मैं सही रास्ते पर हूं, लेकिन मैं टेक्स्ट क्षेत्रों से टेक्स्ट को JSON ऑब्जेक्ट में कनवर्ट करना चाहता हूं।

पेलोड इस तरह दिखना चाहिए।

{
"intent":"SanFransico",
   "examples":[
    {
        "text":"San Fran"
    },
    {
        "text":"Bay Area"
    }
     ]
}

इस समय मैं जो कर सकता हूं वह इस पाठ क्षेत्र में भेज रहा है

   <textarea name="intent[intent]">SanFransico</textarea>
   <textarea name="intent[examples][text]">San Fran</textarea>
   <textarea name="intent[examples][text]">Bay Area</textarea>

दुर्भाग्य से लौटाने वाला पेलोड इस तरह दिखता है, और यह दूसरा टेक्स्ट फ़ील्ड वापस नहीं करता है।

{
   "intent":
   {
    "intent":"SanFransico",
     "examples":{
         "text":"Bay Area"
     }
   }
}

मेरे पास सफेद प्रयोग करने वाला एक फिडलर है। https://jsfiddle.net/8w4tx1pk/

कोई विचार अगर यह सही रास्ता है? या क्या मुझे अधिक जटिल कार्य की आवश्यकता है?

0
Dymond 6 अक्टूबर 2018, 19:42

1 उत्तर

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

आपकी पहेली को ठीक करने के बाद, मैं इसे संबोधित करने में सक्षम था।

पहेली: https://jsfiddle.net/Twisty/8w4tx1pk/11/

एचटीएमएल

<div class="container">
  <form id="my-profile">
    <textarea name="intent">San Francisco</textarea>
    <textarea name="examples[][text]">San Fran</textarea>
    <textarea name="examples[][text]">Bay Area</textarea>
    <div class="clearfix">
      <button type="button" id="btnSerialize" class="btn btn-primary pull-right">serializeToJSON</button>
    </div>

    <div class="form-group">
      <textarea id="result" class="form-control" rows="10"></textarea>
    </div>
  </form>
</div>

जावास्क्रिप्ट

$(function() {
  $("#btnSerialize").on("click", function() {

    var obj = $('#my-profile').serializeJSON();
    console.log(obj);

    var jsonString = JSON.stringify(obj);
    $("#result").val(jsonString);
  })
});

परिणाम

{
  "intent":"San Francisco",
  "examples":[
    {
      "text":"San Fran"
    },{
      "text":"Bay Area"
    }
  ]
}
2
Twisty 6 अक्टूबर 2018, 20:08