オブジェクトをjsonより20%小さいフォーマットでエンコードするクラスを作成しました。これはバイナリではありません。今はどこかに置いてみたいので、人々はそれを使うことができます。どこに投稿すればよいですか?ここで AS3クラスの公開場所はどこですか?
はJSONでエンコードされた例のオブジェクト、です:{"glossary":{"GlossDiv":{"GlossList":{"GlossEntry":{"GlossTerm":"Standard Generalized Markup Language","Abbrev":"ISO 8879:1986","ID":"SGML","GlossDef":{"GlossSeeAlso":["GML","XML"],"para":"A meta-markup language, used to create markup languages such as DocBook."},"Acronym":"SGML","SortAs":"SGML","GlossSee":"markup"}},"title":"S"},"title":"example glossary"}}
そして、ここで、それは私のフォーマットである:JSONで
glossary{GlossDiv{GlossList{GlossEntry{GlossDef{GlossSeeAlso[GML XML]para"A meta-markup language, used to create markup languages such as DocBook."}GlossTerm"Standard Generalized Markup Language"GlossSee markup ID SGML Acronym SGML Abbrev"ISO 8879:1986"SortAs SGML}}title S}title"example glossary"}
、文字列の長さが360である、と私のフォーマットでそれがあります299
(私の書式では、空白や特殊文字が含まれている場合は識別子の前後に引用符を置きますが、JSONでできるものはすべてエンコードできます)
ここでは例として読み込み可能な文字列です:
JSON:
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
マイフォーマット:あなたは解放するために欠けていると仮定すると、
"glossary" {
"title" "example glossary"
"GlossDiv" {
"title" "S"
"GlossList" {
"GlossEntry" {
"ID" "SGML"
"SortAs" "SGML"
"GlossTerm" "Standard Generalized Markup Language"
"Acronym" "SGML"
"Abbrev" "ISO 8879:1986"
"GlossDef" {
"para" "A meta-markup language, used to create markup languages such as DocBook."
"GlossSeeAlso" [
"GML"
"XML"
]
}
"GlossSee" "markup"
}
}
}
}
(引用は、ほとんどの文字列にオプションです)
JSONだけでなく、人気のあるas3corelibに追加したために求めることができます(例えばXMLなど)をパッケージ化するだけでなく、JavaScriptなどと互換性があり、多種多様な開発ツールやプラットフォームでサポートされているためです。心に留めておくべきこと。 – jayarjo
また、あなたのフォーマットはJSONよりはるかにコンパクトですか?既に数百キロバイトがカウントされていない場合、60または100の追加文字がトラフィックに追加されます。 – jayarjo
マルチプレイヤーゲームで作業しているときは、パケットがそれよりもずっと大きく、すべてのバイト数がカウントされます。あなたがバイナリソケットに書き込んでそれを収縮させると、80バイトも小さくなります。 –