AS3 对象到 JSON

2023-12-11

我正在尝试将对象数组(嵌套)转换为 JSON 字符串。 这是我的 JSON 输出:

[{
    "Width": 570,
    "SessionID": 2003404006158805,
    "Price": "69,90",
    "PageCount": 24,
    "Pages": [{
        "ID": 1,
        "TemplateID": 0,
        "PageType": "cover",
        "TextContainers": [],
        "ImageContainers": []
    }, {
        "ID": 2,
        "TemplateID": 1001,
        "PageType": "single",
        "TextContainers": [],
        "ImageContainers": []
    }, {
        "ID": 3,
        "TemplateID": 0,
        "PageType": "double",
        "TextContainers": [],
        "ImageContainers": [{
            "Width": 570,
            "IsBG": true,
            "Brightness": 0,
            "Contrast": 0,
            "PosX": null,
            "ScaleX": null,
            "Height": 284,
            "ID": -1,
            "BlackWhite": 0,
            "PosY": null,
            "HasPhoto": false,
            "ScaleY": null,
            "PhotoID": null
        }]
    }, {
        "ID": 4,
        "TemplateID": 0,
        "PageType": "double",
        "TextContainers": [],
        "ImageContainers": [{
            "Width": 570,
            "IsBG": true,
            "Brightness": 0,
            "Contrast": 0,
            "PosX": null,
            "ScaleX": null,
            "Height": 284,
            "ID": -1,
            "BlackWhite": 0,
            "PosY": null,
            "HasPhoto": false,
            "ScaleY": null,
            "PhotoID": null
        }]
    }],
    "ProductSubID": 0,
    "Height": 620,
    "ProductID": 0
}]

当我尝试将此字符串转换为 XML(在服务器端)时,结果如下:

<?xml version="1.0" encoding="UTF-8" ?>
    <0>
        <Width>570</Width>
        <SessionID>2003404006158805</SessionID>
        <Price>69,90</Price>
        <PageCount>24</PageCount>
        <Pages>
            <ID>1</ID>
            <TemplateID>0</TemplateID>
            <PageType>cover</PageType>
        </Pages>
        <Pages>
            <ID>2</ID>
            <TemplateID>1001</TemplateID>
            <PageType>single</PageType>
        </Pages>
        <Pages>
            <ID>3</ID>
            <TemplateID>0</TemplateID>
            <PageType>double</PageType>
            <ImageContainers>
                <Width>570</Width>
                <IsBG>true</IsBG>
                <Brightness>0</Brightness>
                <Contrast>0</Contrast>
                <PosX />
                <ScaleX />
                <Height>284</Height>
                <ID>-1</ID>
                <BlackWhite>0</BlackWhite>
                <PosY />
                <HasPhoto>false</HasPhoto>
                <ScaleY />
                <PhotoID />
            </ImageContainers>
        </Pages>
        <Pages>
            <ID>4</ID>
            <TemplateID>0</TemplateID>
            <PageType>double</PageType>
            <ImageContainers>
                <Width>570</Width>
                <IsBG>true</IsBG>
                <Brightness>0</Brightness>
                <Contrast>0</Contrast>
                <PosX />
                <ScaleX />
                <Height>284</Height>
                <ID>-1</ID>
                <BlackWhite>0</BlackWhite>
                <PosY />
                <HasPhoto>false</HasPhoto>
                <ScaleY />
                <PhotoID />
            </ImageContainers>
        </Pages>
        <ProductSubID>0</ProductSubID>
        <Height>620</Height>
        <ProductID>0</ProductID>
    </0>

但我需要它是这样的:

<pages>
<page>
</page>
<page>
</page>
</pages>

这是我将对象数组转换为 JSON 的 AS 代码

var Pages:Array = [];
            var Books:Array = [];
            var JBook:Object = new Object();

            JBook.Width = Global.BOOK_WIDTH;

            for(var i:Number = 0; i<Global.PAGES.length; i++)
            {
                var Page:PageVO = Global.PAGES[i] as PageVO;
                var JPage:Object = new Object();
                JPage.ID = Page.ID;

                var ImageContainers:Array = [];
                var TextContainers:Array = [];
                var Template:TemplateVO = Page.ACTIVE_TEMPLATE;

                for(var j:Number = 0; j<Template.IMAGE_CONTAINERS.length; j++)
                {
                    var ImageContainer:ImageContainerVO = Template.IMAGE_CONTAINERS[j] as ImageContainerVO;
                    var JImageContainer:Object = new Object();
                    JImageContainer.ID = ImageContainer.ID;
                    ImageContainers.push(JImageContainer);
                }

                for (var m:Number = 0; m<Template.TEXT_CONTAINERS.length; m++)
                {
                    var TextContainer:TextContainerVO = Template.TEXT_CONTAINERS[m] as TextContainerVO;
                    var JTextContainer:Object = new Object();
                    JTextContainer.ID = TextContainer.ID;
                }

                JPage.TextContainers = TextContainers;
                JPage.ImageContainers = ImageContainers;
                Pages.push(JPage);
            }

            var Photos:Array = [];
            for(var p:Number = 0; p<Global.PHOTOS.length; p++ )
            {
                var Photo:PhotoVO = Global.PHOTOS[p] as PhotoVO;
                var JPhoto:Object = new Object();
                JPhoto.BMP = ImageUtils.BitmapToBase64(Photo.BMP.bitmapData);
                JPhoto.UseCount = Photo.USE_COUNT;
                JPhoto.ID = Photo.ID;
                Photos.push(JPhoto);
            }


            //JBook.Photos = Photos;
            JBook.Pages = Pages;
        JSON   = com.adobe.serialization.json.JSON.encode(Books);

知道为什么它渲染 JSON 字符串就像它们不在同一个节点中(每个页面项都有单独的节点)吗?

希望我已经说清楚了。谢谢。


从 AS3 对象转换为 JSON 字符串的最简单方法可能是使用来自 as3corelib 的 JSON 类.

用法示例:

var jsonString:String = JSON.encode(myDataObject);

最好不要编写自己的解析器,因为 as3corelib JSON 解析器已经被很多人开发和使用了相​​当长的一段时间。

EDIT:@dpcao 提到你甚至不再需要外部库,Adobe 引入了新的 JSON 类在 FlashPlayer 11 中可用。

用法示例:

var jsonString:String = JSON.stringify(myDataObject);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AS3 对象到 JSON 的相关文章

  • 如何使用 JSON.net 处理同一属性的单个项目和数组

    我正在尝试修复我的 SendGridPlus 库以处理 SendGrid 事件 但我在 API 中对类别的处理不一致方面遇到了一些麻烦 在以下示例中 有效负载取自SendGrid API 参考 http sendgrid com docs
  • 覆盖 QWebView 中的页面回复

    我试图在 Qt 的 QWebView 中拦截页面 表单请求 并在某些情况下使用替代内容进行响应 QNetworkReply ngcBrowser createRequest Operation operation const QNetwor
  • JSON 解析器从大型 JSON 文件中逐条读取

    我有一个巨大的 JSON 文件 1GB 它基本上是以下格式的对象数组 x y p q x1 y1 p1 q1 我想解析这个文件 这样所有的数据都不会加载到内存中 基本上我想获取例如 数组中的前 1000 个对象进行内存处理 然后将接下来的
  • 应用程序内的 SQLite 文件版本兼容性

    我有一个 C NET 应用程序 一种复杂的计算应用程序 其中用户输入数据 处理后的信息使用 JSON 序列化和 EF 保存到 SQLite 文件中 需要时可以将其加载到我们的应用程序中 应用程序在开发过程中经历了很多变化 类也被修改 因此
  • JSON对象的长度[重复]

    这个问题在这里已经有答案了 该函数生成一个包含 json 对象的数组 var estoque function unpack estoque tnm total estoque vl id tid st tnm tnm split tota
  • 获取 JSON 中的 HTML 以在 React 组件中呈现为 HTML

    试图找出如何让链接实际呈现为链接 现在 在我从 Json 文件中读取这行文本后 React 将超链接渲染为文字文本 而不将其渲染为链接 一些数据 json about John has a blog you can read a href
  • 使用正则表达式如何从十进制数中删除尾随零

    我需要编写一些正则表达式 它接受一个数字并删除小数点后的所有尾随零 语言是 Actionscript 3 所以我想写 var result String theStringOfTheNumber replace the regex 例如 3
  • AWS SES模板html部分是多行

    我正在使用 AWS SES 按照文档发送电子邮件https docs aws amazon com ses latest DeveloperGuide send personalized email api html https docs
  • Play Framework 2.3 (Scala) 中的自定义 JSON 验证约束

    我设法使用自定义约束实现表单验证 但现在我想对 JSON 数据执行相同的操作 如何将自定义验证规则应用于 JSON 解析器 示例 客户端的 POST 请求包含用户名 username 我不仅要确保该参数是非空文本 而且还要确保该用户确实存在
  • 如何重置加速度计事件 As3

    在我的项目中 在游戏开始时加速计事件工作正常 当游戏到达游戏结束页面并单击重新启动按钮时 重新启动整个游戏时 所有对象都工作良好 所有值也已重置 但加速计不起作用 提前致谢 代码如下 if Accelerometer isSupported
  • 使用本地存储在从另一个表保存的 HTML TABLE 中打印 JSON,以便我在另一个页面上打印我的表

    在我的作业中 我必须使用用户输入中的数据并将数据保存在本地存储中 我必须以水平表格式将这些数据从本地存储打印到其他页面 为此 我编写了用于用户输入并将数据保存在本地存储中的代码 div p p div
  • 使用 JSON.NET 将 JSON 数据反序列化为 C#

    我对使用 C 和 JSON 数据比较陌生 正在寻求指导 我使用的是 C 3 0 NET3 5SP1 和 JSON NET 3 5r6 我有一个已定义的 C 类 需要从 JSON 结构填充该类 但是 并非从 Web 服务检索的条目的每个 JS
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo
  • 如何将单引号转义为双引号转义为单引号

    以下是符合此描述的命令行示例 curl http dumbdomain com solr collection2 update json H Content type application json d add doc uid 79729
  • nlohmann/json 框架中的未知断点

    一段时间以来 当我在启用断点的 Xcode 下运行我的应用程序时 我显然在名为 nlohmann basic json 的系统框架中遇到了一个未知断点 我可以毫无问题地继续执行 但这无论如何都很烦人 知道这个断点的原因是什么 或者更好的是
  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • Flex PopUpManager:如何检测模式弹出窗口的存在?

    我的 Flex 3 应用程序有一些通过 PopUpManager 显示的模式对话框 但有时我希望其他视图组件知道有弹出窗口显示 PopUpManager 没有任何方法来实际检查弹出窗口是否存在 有没有其他方法可以在 flash flex 中
  • GitHub Actions:如何将 toJSON() 结果传递给 shell 命令

    因此 我正在与 Github Actions 合作进行端到端测试 我正在查看的设置是让一项作业检索要测试的 url 列表 而我的第二项作业使用该列表创建一个矩阵并测试所有这些 我的问题是 当我实际运行测试脚本时 必须从命令行完成 因为我使用
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur

随机推荐

  • 在 catch 处理程序中打印异常回溯的可靠方法?

    我想在我的 C 程序中启用异常的完整日志记录 我想做的就是在 seh catch handler 中捕获软件 硬件异常 然后打印异常的完整回溯 我主要对异常的起源感兴趣 调用堆栈对我来说就足够了 try difficult task exc
  • 如何使用 UIScrollView 实现 UIPageViewController?

    我拿了照片滚动来自苹果网站的示例 并尝试通过复制代码来实现我自己的专辑 现在UIScrollView不可见 我该如何让它出现 我所做的唯一代码更改是创建UIPageViewController 就我而言 这是一个UIViewControll
  • 退出时保存应用程序数据状态

    我有一个包含 24 个字符串的 NSMutableArray 如果用户接到电话或退出应用程序 我需要保存这些数据 我一直在研究很多例子 但由于某种原因似乎无法确定保存数据的最佳方法 24 个字符串对应 24 个按钮及其状态 单击按钮时 它会
  • 在 Sencha Touch 2 中从商店加载轮播?

    有没有人有一个代码示例 可以从商店 在我的例子中是 JSON 商店 加载 Sencha Touch 2 Carousel 组件 我了解如何加载扩展 DataView 的列表 但 Carousel 似乎是一个更难解决的问题 因为它不扩展 Da
  • C# 中 AppDomain 的使用

    C 中 AppDomains 最重要的用途是什么 The 最重要的一个使用的是你的代码必须有一个 即您用 C 编写的所有内容都在AppDomain 这非常重要 p 如果你的意思是额外的应用程序域 当使用插件和其他不受信任的代码时 它允许您隔
  • 是否可以将 html get 请求从 create-react-app 代理到 /graphql ?

    我有一个 create react app 应用程序 在其中通过添加以下内容来启用代理 proxy http localhost 3001 到我的 package json 这对于对 graphql 的 API 请求效果很好 但是当 Web
  • CodeIgniter 未加载页面

    我有一个使用 codeigniter 开发的 Web 应用程序 它在我以前的服务器中运行良好 现在我更改了我的服务器 当我尝试运行该 Web 应用程序时 除了空白屏幕之外什么也没有 当我尝试打开现有链接时http mydomain com
  • 是否有用于创建茎叶图的 pandas 函数

    有没有相当于R的pandasstem 用于为数字创建茎叶图的函数Series 我可以轻松编写一些代码 但想知道我是否错过了精美手册中的某些内容 输出示例 16 070355555588 18 000022233333335577777777
  • java 将字符串月份转换为整数

    如何将月份字符串转换为整数 在单击方法中 我想显示所选的日期 但如果该日期有事件 它应该显示有关该事件的更多信息 检查假期事件的方法需要整数值 这是代码 UPDATED Override public void onClick View v
  • 我如何使用 awk 打印多个分隔符单词? [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我有一个带有正则表达式分隔符的 awk 我需要提取名字和姓氏的单词 但是这个命令不起作用 awk v OFS t v FS firstName lastName sum 1 2 print
  • 将 Uint8List 转换为文件

    我正在使用图像选择器网络 效果很好 我可以在中显示图像Image memory 但是此图像的格式为 Uintlist8 为了保存在存储需要格式File 我的问题是如何将图像保存在Firebase 存储 网页图像选择器 class Secon
  • 如何生成列表的所有排列?

    如何生成列表的所有排列 例如 permutations permutations 1 1 permutations 1 2 1 2 2 1 permutations 1 2 3 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3
  • 按下按钮时的动画文本转换

    我有 3 种类型的报价 当按下相应的按钮时 如果从类别 1 到类别 2 再到类别 3 则报价会消失 反之亦然 然而 我想让引用消失 即使它们来自同一类别 现在 当引用来自不同类别时 它就会消失 如何才能做到这一点 谢谢 我认为这与按钮有关
  • Rust impl 具有私有字段的默认特征

    当我进行此类设置时 我收到错误 默认 测试 rs mod default mod use default mod Point fn main let p1 Point new let p2 Point Point z 1 Default d
  • Raphael JS 中的弧线动画在 Chrome 中摆动

    我在动画中看到恼人的摆动 我已经删除了包含实际动画的代码 var side 400 var paper new Raphael this 100 side paper customAttributes arc function xloc y
  • Jackson 未调用 CustomContextResolver 的 getContext() 方法

    我已经在这个问题上苦苦挣扎了好几天 不知道如何解决这个问题 任何快速帮助将不胜感激 我需要从使用 apache CXF 和 jackson 从 REST 服务构建接收到的 JSON 字符串转换 LocalDate 我编写了自定义 Conte
  • iOS 设备上的麦克风输入到扬声器输出?

    如何将 iOS 设备上的麦克风输入重定向到扬声器输出 我知道它会超时反馈 但是我如何在代码中做到这一点 See 奥里奥触摸来自苹果的样本 这正是你想要的 IE 它在输入时直接播放输入
  • 由于 pvob 中的主要组已更改,如何更改视图目录 (*.vws) 中的组名称?

    我在更改视图 vws 目录中的组名称时遇到问题 因为 Pvob 上的 cc 主组已更改 它并没有阻止我 因为我是所有者 但我的同事无法交付我的意见 谢谢你的帮助 我通常使用fix prot see About fix prot 在 Wind
  • 当我不使用溢出时,浮动 div 不显示背景颜色?

    HTML div div div div div div div div div div CSS wrapper background blue width 990px margin 0 auto content width 990px h
  • AS3 对象到 JSON

    我正在尝试将对象数组 嵌套 转换为 JSON 字符串 这是我的 JSON 输出 Width 570 SessionID 2003404006158805 Price 69 90 PageCount 24 Pages ID 1 Templat