json字符串和json对象的区别,json指的是字符串还是对象?

json字符串和json对象的区别,json指的是字符串还是对象?

对于科技行业的朋友们来说,JSON一点也不陌生。虽然我们经常和JSON打交道,但是说起JSON时,到底说的是JSON字符串呢还是JSON对象呢?

什么是JSON?

JSON它其实是一种轻量级的数据交换格式,全称是JavaScript Object Notation,可以理解为是JS对象标记。JSON独立于语言,具有自我描述性。

但我们日常说的JSON主要是指JSON这种数据格式,而不是特指JSON字符串或者对象。

JSON对象和JSON字符串的区别和联系

1、JSON对象

JSON对象是可以直接用来操作的格式,在JS中和对象一样使用 类名.方法 方式来调用。

2、JSON字符串

JSON字符串仅仅是一个字符串,只不过其字符串里的内容是合法的JSON,不能直接使用(使用前需要先转换为JSON对象)。通俗的说,JSON字符串是JSON对象的String形式。

3、JSON对象和JSON字符串是可以相互转换的。

JSON在数据传递时是以字符串形式传递的

我们说JSON只是一种数据交换格式,JSON对象在网络中传输时,最终是要转换为JSON字符串来传输的,等需要使用时再转换回JSON对象即可。

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

json字符串和json对象的区别,json指的是字符串还是对象?

PHP如何判断字符串是否标准JSON,有什么好办法?

怎么判断字符串是正确的JSON格式。

引言

在MYSQL 5.6及以下没有 JSON 这个字段类型的时候,我们还只能用字符串存储数组,对象,这些结构数据;甚至有直接将序列化的对象存库的,都是无奈之举。

json字符串和json对象的区别,json指的是字符串还是对象?

编程中也时不时对接口进行json_encode / json_decode。那么如果所得的字符串不是标准的格式,有什么办法快速检测吗?

本文就来说一说。

学习时间

最快的办法,还是使用PHP内置的 json_decode 函数,对于此函数的参数和返回值,我们需要认真地分析。

该函数接受一个 JSON 编码的字符串并且把它转换为 PHP 变量。函数结构:

mixed json_decode( string $json[, bool $assoc = false[, int $depth = 512[, int $options = 0]]] )

除了第一个字符串类型的$json必填之外,其他都是选填。如果我们定制功能,需要后面的参数也指定。比如,解码的字符串解析为关联数组,那么就指定 $assoc = true。

考虑到兼容性的要求,$json 传入的字符串,必须是 UTF-8 编码格式。

我们试着编写一个助手函数,用于判断字符串是否标准的json格式:

function isJson($string) { json_decode($string); return (json_last_error() == JSON_ERROR_NONE); }

这个方法使用了2个函数,和1个常量。其中 json_decode 是对字符串解码暂且不说。json_last_error 函数,如果有返回值,则是 JSON 编码解码时最后发生的错误。

JSON_ERROR_NONE 是无错误,=0。该句判断没有错误则是标准格式,返回 true;否则返回 false。

深入学习

其实上面的代码对于 json 加解码过程中的错误判断还是比较粗糙的。有一位小哥不嫌繁琐,手动拼装了详细的错误处理函数,非常实用。

json字符串和json对象的区别,json指的是字符串还是对象?

使用上述函数进行测试:

$json = '[{"user_id":13,"username":"stack"},{"user_id":14,"username":"over"}]'; $output = json_validate($json); print_r($output);

输出内容如下:

json字符串和json对象的区别,json指的是字符串还是对象?

这是正常的情况,json 格式完全正确。我们再测试一个不是规范格式的字符串。

$json = '{background-color:yellow;color:#000;padding:10px;width:650px;}'; $output = json_validate($json); print_r($output);

输出错误信息:

Syntax error, malformed JSON.

万能的正则

跟字符串打交道,正则表达式几乎可以做一切你想要的结果。json 字符串也一样,据文档所说,使用正则表达式判断JSON格式,稳定有效,而且速度还很快。

下面这个正则表达式您拿小本本记好了,一模一样地抄下来用就可以了。

return !preg_match('/[^,:{}[]0-9.-+Eaeflnr-u nrt]/', preg_replace('/"(.|[^"])*"/', '', $json_string));

写在最后

如果考虑程序的可读性,和可维护性,使用 json_decode 函数的判断无疑更直观,大家也更熟悉。然而正则表达式所体现出的高效也是不容小觑的。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

javascript如何处理json数据?

我是点点小萱,这个问题我来回答。

json

首先我们来介绍下javascript,JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。

json字符串和json对象的区别,json指的是字符串还是对象?

js已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

json字符串和json对象的区别,json指的是字符串还是对象?

而json(全称JavaScript Object Notation)则是JS对象的简谱,是一种轻量级的数据交换格式。它是基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,它通过完全独立于编程语言的文本格式来存储和表示数据信息。

我们可以这样理解:JSON是JS对象的字符串表示形式,它使用文本来表示一个JS对象的信息,其本质是一个字符串。

用json格式来表示数据,这样更容易让人阅读和编写,同时对于机器的解析和生成也更加简单。

javascript处理json

在js中,我们通常用JSON.parse()方法来解析JSON字符串。

json字符串和json对象的区别,json指的是字符串还是对象?

①创建一个json字符串:

var jsonStr = '[{"name1":{"address1":"北京市朝阳区"}},{"name2":{"address2":"北京市西城区"}},{"name3":{"address3":"北京市海淀区"}}]';

②通过JSON.parse()方法来解析json字符串为一个对象:

var json = JSON.parse(jsonStr);

//打印对象信息

console.log(json);

③遍历对象获取对象中的属性值

// 循环遍历对象,获取key -- value

for(var i = 0; i < json.length; i++){

// {"name1":{"address1":"北京市朝阳区"}}

var itemJson = json[i];

// 再次遍历获取

for(var key in itemJson){

console.log(key);

// {"address2":"北京市西城区"}

var childItem = itemJson[key];

// 再次遍历获取

for (var keyItem in childItem) {

console.log(keyItem + " -- " + childItem[keyItem]);

}

}

}

我们可以看到解析后,打印的对象信息,以及对象的遍历信息:

json字符串和json对象的区别,json指的是字符串还是对象?

如此,一个简单的json字符串解析就完成了。另外,提供一个在线解析的工具:

http://tools.jb51.net/code/HtmlJsRun

感兴趣的朋友可以使用这个工具,测试上述代码运行的效果。

我是点点小萱,如有不足之处,欢迎点评、建议。

------------河南新华

"

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论