PHP convet class to json data

/*********************************************************************
 *              PHP convet class to json data
 * 说明:
 *     突然想使用class自动转换为json数据,这样的代码可扩展性会好一点,
 * 只需要修改class的属性就能够达到最终json数据输出,不过有遇到class中
 * 初始化class变量需要在构造函数中初始化的的问题。
 *
 *                                   2017-8-11 深圳 龙华樟坑村 曾剑锋
 ********************************************************************/

一、参考文档:
    1. getting Parse error: syntax error, unexpected T_NEW [closed]
        https://stackoverflow.com/questions/15806981/getting-parse-error-syntax-error-unexpected-t-new

二、测试代码:
    <?php
        class Uart {
            public $port = "/dev/ttyO0";
            public $value = "OK";
        }

        class Context {
            public $uart = new Uart();;
            public $version = "v0.0.1";
        }

        $context = new Context;

        $context_json = json_encode($context);
        echo $context_json
    ?>

三、报错内容:
    Parse error: syntax error, unexpected 'new' (T_NEW) in /usr/share/web/time.php on line 8

四、最终代码:
    <?php
        class Uart {
            public $port = "/dev/ttyO0";
            public $value = "OK";
        }

        class Context {
            public $uart;
            public $version = "v0.0.1";

            public function __construct() {
                $this->uart = new Uart();
            }
        }

        $context = new Context;

        $context_json = json_encode($context);
        echo $context_json
    ?>

五、输出结果:
    {"uart":{"port":"\/dev\/ttyO0","value":"OK"},"version":"v0.0.1"}

六、原因:
    you must do initialize new objects in the __construct function;

 

时间: 2024-09-27 10:09:27

PHP convet class to json data的相关文章

How to remove k__BackingField from Json data

当用DataContractJsonSerializer类序列化对象为Json时,发现序列化后的json对象,每个属性都带有k__BackingField后缀,像这样: 解决办法:为要被序列化的类打上相应标记,像下面这样: [Serializable] [DataContract] public class Person { private string _name; [DataMember] public string Name { get { return _name; } set { _n

HOW TO EXTRACT DATA FROM JSON RESPONSE USING JMETER

转自 https://octoperf.com/blog/2017/03/09/how-to-extract-data-from-json-response-using-jmeter/ People that successfully extract content from Json documents do two things very well: First, they understand how the json format works, Second, they put 100%

[Python]json对象转换出错expected string or buffer python

[问题] 今天在使用python中的json转换碰到一个问题: [代码] comments.json { "count":"2", "page":"1", "comments":[ { "content":"helloworld", "user":{ "id":"0001", "name"

android-Android 中传递 json 的问题

问题描述 Android 中传递 json 的问题 我在开发一个程序,在 webpage 上使用jquery. $.post(url, {param: paramstring}, function(result){}); 根据参数结构,Paramstring 是一个 json字符串,如:{"action":"get","username":"username"} 现在我想在android中运行,再在页面上添加两个textvie

【原创】具有path autovivification和conversion功能的JSON库

      研究该 JSON 库的由头是因为目前开发 modb 需要支持 json 解析功能.而发现这个有意思的 项目 的地方正是在开源中国.OSChina 对该库的描述如下:  json.c 是一个小型的 C 语言的 JSON 解析库,支持路径表达式.autovivification, 和 restartable I/O. 而库的作者做了更为丰富的表述(中英对照翻译如下):  ===== json.c is a JSON C library that supports path autoviv

js实现json数据行到列的转换的实例代码

为了实现这样的数据显示出来三个序列,分别为郑州.新乡.安阳的电量,就需要自己实现对这样数据的转换,转换成如下的形式:   月份 郑州-电量 新乡-电量 安阳-电量 201201 33 29 23 201202 35 26 25 201203 34 27 24 201204 36 28 26 201205 34.3 28.8 24.3 这样,Ext的图表就能把它显示成三个序列了. 我写了如下的函数实现这个功能: 复制代码 代码如下: function CovertData(jsonData,idF

基于json的AJAX高级开发技术

提要 本文将解释如何使用AJAX和JSON分析器在客户端和服务器之间创建复杂的JSON数据传输层. 一. 引言 毫无疑问,AJAX已经成为当今Web开发中一种强有力的用户交互技术,但是它的许多可能性应用仍然鲜为人知.在本文中,我们将来共同探讨如何使用JavaScript对象标志(JSON)和JSON分析器在服务器和客户端AJAX引擎之间创建复杂而强有力的JSON数据传输层.我们将详细讨论如何创建一组对象(在其它语言中经常被当作一个包),如何把这些对象串行化为JSON以发送到服务器端,以及如何把服

详谈基于JSON的高级AJAX开发技术

ajax|js|高级 本文将解释如何使用AJAX和JSON分析器在客户端和服务器之间创建复杂的JSON数据传输层. 一. 引言 毫无疑问,AJAX已经成为当今Web开发中一种强有力的用户交互技术,但是它的许多可能性应用仍然鲜为人知.在本文中,我们将来共同探讨如何使用JavaScript对象标志(JSON)和JSON分析器在服务器和客户端AJAX引擎之间创建复杂而强有力的JSON数据传输层.我们将详细讨论如何创建一组对象(在其它语言中经常被当作一个包),如何把这些对象串行化为JSON以发送到服务器

js实现json数据行到列的转换

为了实现这样的数据显示出来三个序列,分别为郑州.新乡.安阳的电量,就需要自己实现对这样数据的转换,转换成如下的形式: 月份 郑州-电量 新乡-电量 安阳-电量 201201 33 29 23 201202 35 26 25 201203 34 27 24 201204 36 28 26 201205 34.3 28.8 24.3 这样,Ext的图表就能把它显示成三个序列了. 我写了如下的函数实现这个功能: function CovertData(jsonData,idField, fromFie