js将两个json合并成一个,有啥好的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js将两个json合并成一个,有啥好的方法相关的知识,希望对你有一定的参考价值。

已知
var str1=[name:"11",age:11];
var str2=[name:"22",age:22];
想得到结果
var str3=[name:"11",age:11,name:"22",age:22];

思路 转换成字符串再转化成json;

代码如下:

var json = ;
var json1 = a:1,b:1;
var json2 = c:1,d:1;
json = eval(\'(\'+(JSON.stringify(json1)+JSON.stringify(json2)).replace(//,\',\')+\')\');
// json: a:1,b:1,c:1,d:1
参考技术A var str1=[name:"11",age:11];
var str2=[name:"22",age:22];

var str3 = [];

for (var i = 0; i < str1.length; i++) 
    str3.push(str1[i]);


for (var i = 0; i < str2.length; i++) 
    str3.push(str2[i]);


--------------

var str3 = str1.concat(str2);

本回答被提问者采纳
参考技术B var a ="a":"1","b":"2"
var b ="c":"3","d":"4","e":"5"
var c = $.extend(, a,b);
console.log(c);//输出结果,"a":"1","b":"2","c":"3","d":"4","e":"5"

有啥方法可以把多个视频合并成一个视频吗

视频合并可以参考以下方法:

方法一:FFmpeg concat 协议

对于 MPEG 格式的视频,可以直接连接:

ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg

对于非 MPEG 格式容器,但是是 MPEG 编码器(H.264、DivX、XviD、MPEG4、MPEG2、AAC、MP2、MP3 等),可以包装进 TS 格式的容器再合并。在新浪视频,有很多视频使用 H.264 编码器,可以采用这个方法

ffmpeg -i input1.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts

ffmpeg -i input2.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input2.ts

ffmpeg -i input3.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input3.ts

ffmpeg -i "concat:input1.ts|input2.ts|input3.ts" -c copy -bsf:a aac_adtstoasc -movflags +faststart output.mp4

保存 QuickTime/MP4 格式容器的时候,建议加上 -movflags +faststart。这样分享文件给别人的时候可以边下边看。

方法二:FFmpeg concat 分离器

这种方法成功率很高,也是最好的,但是需要 FFmpeg 1.1 以上版本。先创建一个文本文件filelist.txt:

file 'input1.mkv'

file 'input2.mkv'

file 'input3.mkv'

然后:

ffmpeg -f concat -i filelist.txt -c copy output.mkv

注意:使用 FFmpeg concat 分离器时,如果文件名有奇怪的字符,要在 filelist.txt 中转义。

方法三:Mencoder 连接文件并重建索引

这种方法只对很少的视频格式生效。幸运的是,新浪视频使用的 FLV 格式是可以这样连接的。对于没有使用 MPEG 编码器的视频(如 FLV1 编码器),可以尝试这种方法,或许能够成功。

mencoder -forceidx -of lavf -oac copy -ovc copy -o output.flv input1.flv input2.flv input3.flv

方法四:使用 FFmpeg concat 过滤器重新编码(有损)

语法有点复杂,但是其实不难。这个方法可以合并不同编码器的视频片段,也可以作为其他方法失效的后备措施。

ffmpeg -i input1.mp4 -i input2.webm -i input3.avi -filter_complex '[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] concat=n=3:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' <编码器选项> output.mkv

如你所见,上面的命令合并了三种不同格式的文件,FFmpeg concat 过滤器会重新编码它们。注意这是有损压缩。

[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] 分别表示第一个输入文件的视频、音频、第二个输入文件的视频、音频、第三个输入文件的视频、音频。concat=n=3:v=1:a=1 表示有三个输入文件,输出一条视频流和一条音频流。[v] [a] 就是得到的视频流和音频流的名字,注意在 bash 等 shell 中需要用引号,防止通配符扩展。

提示

    以上三种方法,在可能的情况下,最好使用第二种。第一种次之,第三种更次。第四种是后备方案,尽量避免。

    规格不同的视频合并后可能会有无法预测的结果。

    有些媒体需要先分离视频和音频,合并完成后再封装回去。

    对于 Packed B-Frames 的视频,如果封装成 MKV 格式的时候提示 Can't write packet with unknown timestamp,尝试在 FFmpeg 命令的 ffmpeg 后面加上 -fflags +genpts

参考技术A 合并视频手动是合并不了,一般来说,都是用剪辑工具,像媒体梦工厂或视频剪辑高手 ,剪映等这种专业的剪辑工具是可以操作。 参考技术B 合并视频其实也不难,看你怎么选择技巧了,比如说选择媒体梦工厂,一次能合并多个视频,也可以用到其中的嵌套合并,不仅能合并视频,还可添加封面、片头片尾,预设标题,整体很不错

以上是关于js将两个json合并成一个,有啥好的方法的主要内容,如果未能解决你的问题,请参考以下文章

PowerMock 有啥好的替代品吗?

将 CopyData 用于提升的应用程序有啥好的替代方法

js把两个对象合并成一个对象

有啥方法可以把多个视频合并成一个视频吗

有啥好的方法可以限制向用户显示的评论数量,直到他们选择查看所有内容?

类助手有啥好的用途?