我有两个json对象数据和foo,我想合并它们并创建一个json对象。结果json应该包含来自foo的所有值和来自data的值。到目前为止,我有类似的东西
的javascript:
$('#btn').click(function(){
var imdbid=$('#tst').val();
var url = "http://www.omdbapi.com/?i="+imdbid+"&plot=full&r=json"
$.ajax({
url:url,
dataType:'json',
success:function (json) {
data=json
var foo=$('form').serializeJSON() // store json string
var marged=$.extend(data,foo);
console.log(marged);
}
})
})
HTML:
<form id="myform">
<label>imdb id:</label><input type="text" id="tst" name="tst"/></form><br/>
<label>comment:-</label><input type="text" id="comment" name="comment" /><br/>
<label>link:-</label><input type="text" name="link" id="link" /><br/>
<input type="button" value="search" id="btn"/>
</form>
第一个对象包含从api返回的数据,foo包含form.i的值,希望在成功函数上发送两个对象并发送给php。 当我试图打印出数据时,如下所示
{Title: "Mother's Day", Year: "2016", Rated: "PG-13", Released: "29 Apr 2016", Runtime: "118 min"…}
Actors
:
"Britt Robertson, Jennifer Aniston, Julia Roberts, Timothy Olyphant"
Awards
:
imdbID
:
"tt4824302"
tst
:
"tt4824302"
它获得的第一个输入值没有显示第二个输入值。
答案 0 :(得分:1)
首先将json更改为object而不是将它们合并为
data=json
var foo=$('form').serializeJSON();
marged=$.extend(JSON.parse(data),JSON.parse(foo));
console.log(marged);
答案 1 :(得分:1)
您正在关闭此行中的表格:
<label>imdb id:</label><input type="text" id="tst" name="tst"/></form><br/>
...所以它只获得第一个输入字段; )