设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: zh99998
打印 上一主题 下一主题

[已经解决] 跨语言的API传递数组

[复制链接]

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
11
发表于 2010-6-22 20:09:07 | 只看该作者
自己写反序列化算法就行了,如果保证只有数组和字符串,而且这些字符串没有互相引用一个对象的话,那格式还是很简单的。比如在确定了最外层数据肯定是数组的情况下:

function readStr()
    ret = ""
    for i : 1 to readByte()    // readByte() 此时读取的是字符串长度的
        ret.append(readByte())
    end
    return ret
end

function readArray()
    ret = []
    len = readByte()              // 读取数组长度
    for i : 1 to len
        case readByte()
        when '[':                              // 数组
            ret << readArray()
        when '"':                             // 字符串
            ret << readStr()
        end
    end
    return ret
end

readByte() // 跳过主版本号
readByte() // 跳过副版本号
readByte() // 跳过最外层数组的类型指示符 '['
myArr = readArray() // 开始读取数组

评分

参与人数 1星屑 +700 收起 理由
zh99998 + 700 多谢^0^

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

12
发表于 2010-6-22 20:25:50 | 只看该作者
数组和字符串么……
逐字符读取……啊之前怎么没想到-_-‖
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-12 12:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表