Я хочу создать объект JSON с помощью JQuery. Я написал код JQuery, но он не работает. Здесь я добавил код JQuery в StackExchange.Создайте объект JSON из HTML с помощью JQuery
HTML:
<div id="addconfigurations">
<div class="action DummyAction2" id="10">
<span class="actionname">DummyAction2</span>
<div class="actionOptions">
<span class="optionname">Option1</span>
<select class="ddl" id="Option1">
<option value="D">D</option>
<option value="E">E</option>
</select>
</div>
<div class="actionOptions">
<span class="optionname">Option2</span>
<span class="spantxtbox">
<input name="text" class="txtbox" id="Option2" type="text">
</span>
</div>
</div>
<div class="action DummyAction3" id="20">
<span class="actionname">DummyAction3</span>
<span>Options:</span>
<div>
</div>
<div class="actionOptions">
<span class="optionname">Option1</span>
<select class="ddl" id="Option1">
<option value="AA">AA</option>
</select>
</div>
<div class="actionOptions">
<span class="optionname">Option2</span>
<select class="ddl" id="Option2">
<option value="DD">DD</option>
</select>
</div>
</div>
</div>
JQuery:
var ScenarioDef = {};
var steps = [];
$(".action").each(function() {
var $this = $(this);
steps.push({Name : $this.find('.actionname').text()});
var RequestParams = {};
RequestParams.ActionName = $this.find('.actionname').text()
steps.push(RequestParams);
var ActionOptions = [];
$this.find(".actionOptions").each(function() {
var $this1 = $(this);
if ($('.ddl').length) {
ActionOptions.push({
key: $this1.find('.optionname').text(),
value: $this1.find('.ddl :selected').text()
});
} else {
ActionOptions.push({
key: $this1.find('.optionname').text(),
value: $this1.find('.txtbox').text()
});
}
});
RequestParams.ActionOptions = ActionOptions;
});
ScenarioDef.steps = steps;
Ожидаемый формат JSON.
{
"ScenarioDef": {
"steps": [
{
"Name": "DummyAction2",
"RequestParams": {
"ActionName": "DummyAction3",
"ActionOptions": [
{ "key": "Option1", "value": "AA" },
{ "key": "Option2", "value": "DD" },
{ "key": "Option3", "value": "" }
]
},
},
{
"Name": "DummyAction3",
"RequestParams": {
"ActionName": "DummyAction3",
"ActionOptions": [
{ "key": "Option1", "value": "AA" },
{ "key": "Option2", "value": "DD" },
{ "key": "Option3", "value": "" }
]
}
}
]
}
}
Я получаю ниже выхода:
"ScenarioDef": {
"steps": [
{ "Name": "DummyAction2" },
{
"ActionName": "DummyAction2",
"ActionOptions": [ { "key": "Option1", "value": "D" },
{ "key": "Option2", "value": "" } ]
},
{ "Name": "DummyAction3" },
{
"ActionName": "DummyAction3",
"ActionOptions": [
{ "key": "Option1", "value": "AA" },
{ "key": "Option2", "value": "DD" },
{ "key": "Option3", "value": "" }
]
}
]
}
Это чисто академическое упражнение? – bobber205
Это не упражнение ... В нашем проекте мы используем 100% JQuery & AngularJS на стороне клиента. – user3194721
Обычно вы используете шаблон angularjs, чтобы превратить json в HTML. Зачем ты хочешь сделать обратное ?! – bobber205