java org.json库和perl json库解析差异性

前言:Java org.json库和Perl json库解析JSON的差异性

参考文章:https://zh.wikipedia.org/wiki/JSON
参考文章:https://paper.seebug.org/1925/

什么是json

JSON(JavaScript Object Notation, /ˈdʒeɪsən/)是由道格拉斯·克罗克福特构想和设计的一种轻量级资料交换格式。其内容由属性和值所组成,因此也有易于阅读和处理的优势。JSON是独立于编程语言的资料格式,其不仅是JavaScript的子集,也采用了C语言家族的习惯用法,目前也有许多编程语言都能够将其解析和字符串化,其广泛使用的程度也使其成为通用的资料格式。

java的org.json库的解析情况

perl的json库的解析情况

可以看到json数据中出现了两个键为a的数据,而Perl处理Java传递过来的零字节字符串就会产生截断效果,在处理相同键值的 JSON 时会取最后一个键对应的值,所以输出的时候'a'=>1的数据被后面的'a'=>6 覆盖,最终输出的a的值为6

#!/usr/bin/perl
use JSON;

my %rec_hash = ('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5, 'a' => 6);
my $json = encode_json \%rec_hash;
print "$json\n";

posted @ 2023-01-25 01:54  zpchcbd  阅读(55)  评论(0)    收藏  举报