gpt4 book ai didi

json - AS3 对象转 JSON

转载 作者:行者123 更新时间:2023-12-04 23:44:33 24 4
gpt4 key购买 nike

我正在尝试将对象数组(嵌套)转换为 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 字符串的最简单方法可能是使用 JSON class from as3corelib .

示例用法:

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

最好不要编写自己的解析器,因为 as3corelib JSON 解析器已经被许多人研究和使用了一段时间。

编辑: @dpcao 提到您甚至不再需要外部库,Adobe introduced a new JSON class在 FlashPlayer 11 中可用。

示例用法:

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

关于json - AS3 对象转 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12884492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com