首页 > 其他分享 >JSON字符串与JSON对象的区别

JSON字符串与JSON对象的区别

时间:2022-11-06 16:38:09浏览次数:60  
标签:obj name 区别 对象 age var JSON 字符串

Q:什么是"JSON字符串",什么是"JSON对象",两者的区别?

a.JSON对象是直接可以使用JQuery操作的格式,如js中可以用对象(类名)点出属性(方法)一样
b.JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用,除非你只想alert();

JSON对象

var obj = { "name": "xiaoling", "age": "18" };

JSON字符串

var obj = “{ "name": "xiaoling", "age": "18" }”;

Q:如何将JSON字符串转为JSON对象?


方法一:$.parseJSON()

var str='{"name":"xiaoling","age":"18"}';
var obj=jQuery.parseJSON(str);
console.log(obj.name);   //xiaoling

*方法二:JSON.parse()*

var str='{"name":"xiaoling","age":"18"}';
var obj=JSON.parse(str);
console.log(obj.name);

*方法三:eval()*

var str='{"name":"xiaoling","age":"18"}';
var obj=eval('('+str+')');
console.log(obj.name);
为什么要 eval这里要添加 “("("+data+")");/呢?

原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:

Q:如何将对象转为JSON格式的对象?


*方法一:JSON.stringify(obj)*

 var obj={name:"xioamei", age:18}
console.log("obj="+JSON.stringify(obj)); 

方法二利用nodeJS中的util模块中的 util.inspect(obj[,options])

该方法中的options有以下几个参数:

colors:默认为false,设为true,将会以ANSI颜色的代码风格输出。

showHidden:默认为false,设为true,则对象的不可枚举的属性将会被显示出来。

depth:默认为2,告诉inspect格式化对象的时候递归多少次。复杂对象的时候很有用。

customInspect:默认为true,设为false,则定义在被检查对象上的inspect(depth,opts)方法将不会被调用。

npm install util

新建一个js文件 如此结构:

img

util的代码:

[复制代码](javascript:void(0)

标签:obj,name,区别,对象,age,var,JSON,字符串
From: https://www.cnblogs.com/javaxubo/p/16862915.html

相关文章

  • 使用Jackson生成和解析JSON
    参考声明:https://www.pudn.com/news/62eb6e90864d5c73ac50d924.html参考声明:https://zhuanlan.zhihu.com/p/65224789Jackson是目前使用非常广泛的JSON生成和解析工具......
  • json字符串转map 字段顺序错乱问题
    参考声明1:https://blog.csdn.net/maxi1234/article/details/124847267说一下我使用的场景:就是有一个需求是写一个接口,里面要求返回的数据字段顺序是有要求的,返回数......
  • maven中dependencyManagement与dependencies的区别与联系
    背景新的需求中需要使用到easyexcel中的动态生成列的功能,但是因为我们项目一开始使用的是1.2.4-beta的低版本,并不支持此项特性,所以我们需要将easyexcel的版本升级到高版本......
  • Jmeter断言之Json Assertion
    现在大部分的程序都是通过json格式返回数据,所以JsonAssertion也是非常重要的一个组件添加JsonAssertion组件使用方法 ......
  • 字符串
    //字符串//字符串就是一串字符,用双引号括起来的一串字符//字符数组-数组是一组形同类型的元素include<string.h>include<stdio.h>intmain(){chararr[]="hello";......
  • 进程与线程的区别
    一、进程一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,在Windows系统中,每个运行的应用程序就是一个进程。二、线程进程中的......
  • 字符串逆序(多种解法)
    1:>#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<string.h>voidreverse_string(chararr[]){intl=0;intr=strlen(arr)-1;while(l<r){......
  • SQL Server – Work with JSON
    前言JSON是一个很好的格式,array,object就能表达一个表格了.如果想保存一些结构格式,又不想用表格这么大费周章的话,JSON会是很好选择.比如我用它来记入AuditT......
  • EF Core – JSON Column
    前言SQLServer支持JSON,以前写过一篇介绍 SQLServer–WorkwithJSON.但EFCore一直没有支持.直到EFCore7.0才支持. 参考Docs–JSONColumns 配......
  • EFCore使用JSON_VALUE查询json对象的值
    IntroSqlServer从2016开始支持JSON操作,可以使用JSON_VALUE查询JSON对象的某个属性值,更多介绍,现在公司的一些项目主要是使用EFCore,手写sql较少,针对比较简单的......