对象转换成JSON字符串
定义一个Student类:
1 class Student {
2 public $name;
3 public $age;
4 function __construct($name, $age) {
5 $this->name = $name;
6 $this->age = $age;
7 }
8 }
此时new一个对象并直接echo: $person1 = new Student('jack', 20); echo $person1;
结果并没有按照我们预想的那样打印出该对象而是报了一个致命错误:

意为Student类实例化出来的对象不能转化成字符串,此处可以得到一个信息即:echo 后面必须是字符串,
否则会将其自动转化为字符串,那么如何讲一个对象转换为一个字符串呢?
先介绍一个魔术方法:__tostring(),这个方法用于一个类被当成字符串时应怎样回应。例如 echo $obj;
应该显示些什么。此方法必须返回一个字符串,否则将发出一条 E_RECOVERABLE_ERROR 级别的致命错误。
将这个魔术方法添加到Student类中:
class Student {
public $name;
public $age;
function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
function __tostring() {
return json_encode($this, JSON_FORCE_OBJECT);
}
}
json_encode(value, options)方法可以将一个对象转换为JSON字符串,此方法接受两个参数,
第一个参数:value
待编码的 value ,除了resource 类型之外,可以为任何数据类型
该函数只能接受 UTF-8 编码的数据
第二个参数:options
由以下常量组成的二进制掩码: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_UNESCAPED_UNICODE.
返回值:编码成功则返回一个以 JSON 形式表示的 string 或者在失败时返回 FALSE 。
note:与json_encode方法相对的有json_decode方法,此方法可以将一个JSON格式的字符串转化为PHP变量,此方法接受两个参数
第一个参数:json字符串
第二个参数:true/false,为true时表示将字符串准换位数组,为false时则表示转换为对象,默认为false
返回值:对象或数组(第二个参数为为true时)
此时在浏览器打开可以看到转换成功:

对象转换成JSON字符串的更多相关文章
- Newtonsoft.Json 把对象转换成json字符串
var resultJson = new { records = rowCount, page = pageindex, //总页数=(总页数+页大小-1)/页大小 total = (rowCount ...
- json 字符串转换成对象,对象转换成json字符串
json 字符串转换成对象,对象转换成json字符串 前端: 方法一: parseJSON方法: [注意jquery版本问题] var str = '{"name":&qu ...
- JSON对象转换成JSON字符串
1.问题背景 有一个json对象,需要将其转换成json字符串 JSON.stringify(obj) 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DT ...
- Java对象转换成Json字符串是无法获得对应字段名
问题: 代码中已经标注 @JSONField(name = "attrs") private String abc; public String getA() { return a ...
- 将常见对象转换成json字符串
public class JsonUtil { public static String objectTojson(Object obj) { StringBuilder json = new Str ...
- Java中将对象或者集合对象转换成json字符串
1.对象和字符串相互转换 2.集合对象和字符串相互转换
- C#将对象转换成JSON字符串,Newtonsoft.Json (JSON.NET)
官方API说明文档 http://www.newtonsoft.com/json/help/html/N_Newtonsoft_Json.htm http://www.newtonsoft.com/ ...
- 将Model对象转换成json文本或者json二进制文件
将Model对象转换成json文本或者json二进制文件 https://github.com/casatwy/AnyJson 注意:经过测试,不能够直接处理字典或者数组 主要源码的注释 AJTran ...
- C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。
C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...
随机推荐
- Fastdfs 部署干货
tracker server and client:192.168.1.42 storage server:192.168.1.46 storage server:192.168.1.53 安装: 安 ...
- Elasticsearch查询类型
Elasticsearch支持两种类型的查询:基本查询和复合查询. 基本查询,如词条查询用于查询实际数据. 复合查询,如布尔查询,可以合并多个查询, 然而,这不是全部.除了这两种类型的查询,你还可以用 ...
- yii2.0的gradview点击按钮通过get方式传参
1.直接看views层里的代码就可以了 , <!--?= GridView::widget([ 'dataProvider' =--> $dataProvider, 'filterMode ...
- July 16th 2017 Week 29th Sunday
Opportunities are like sunrises, if you wait too long, you miss them. 机会如同日出,等得太久就会错过. Indecision is ...
- 第二次作业——MathExamLv2
MathExamLv2--林志松 211406285 李明康 211606314 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际 ...
- 使用redux开发的简单步骤
一.安装redux包 npm install redux --save 二.根据APP数据结构或者后台请求的数据结构拟定state的大致结构. 可以把state写成一个对象字面量,放在reducer文 ...
- Codeforces Round #434 (Div. 2)【A、B、C、D】
Codeforces Round #434 (Div. 2) codeforces 858A. k-rounding[水] 题意:已知n和k,求n的最小倍数x,要求x后缀至少有k个0. 题解:答案就是 ...
- django.db中的transaction
transaction.set_autocommit(0) ..... ........ ................ transaction.commit() 可以使夹在其两句中间的所有SQL语 ...
- Mongod启动失败修复方法
可能的原因:上次服务未正常关闭 1.删除data/db目录下的mongo.lock文件 2.删除/tmp/mongodb-27017.sock文件
- linux常用搜索文件命令
使用linux系统难免会忘记文件所在的位置,可以使用以下命令对系统中的文件进行搜索.搜索文件的命令为”find“:”locate“:”whereis“:”which“:”type“ 方法/步骤 ...