JSON 来自 TextAreas 的对象

JSON Object from TextAreas

我不确定我是否走在正确的道路上,但我想将文本从文本区域转换为 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>

不幸的是 returns 的负载看起来像这样,它不是 return 第二个文本字段。

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

我有一个小提琴手正在试验。 https://jsfiddle.net/8w4tx1pk/

你知道这条路是否正确吗?还是我需要更复杂的功能?

在修复你的 fiddle 后,我能够解决它。

Fiddle: https://jsfiddle.net/Twisty/8w4tx1pk/11/

HTML

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

JavaScript

$(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"
    }
  ]
}