Amargosh önerildiği gibi, bunu yapmak için bir JSON ayrıştırıcı değiştirmek veya dizeleri ve yorumlar aracılığıyla skipps ve açık parantez izler sizin için bunu yapmak için basit bir algoritma yapmak ya. açık bir parantez kalır, o zaman tam bir değere sahiptir. sen giriş çıkana kadar bu işlemi tekrarlayın.
Ancak benim önerim bu çıkışı sorumlu kim konuşarak sorunu çözmek ve [{"glossary": {"title": "example glossary"}, "aaa": "1212"},{"adada": "faka"}]
geçerlidir JSON, üretmek için onu ikna etmeye çalışmaktır
edit: JSON nesneleri ayırmak için, bir uzunlukta (4 bayt yeterli olmalı) her JSON nesnesi öneki gerekebilir. Eğer karakter doğru miktarda olması kadar sonra soketi okuyun. sonraki karakterler yine bir sonraki nesnenin uzunluğu olacaktır. TCP paketlerinin çalışır çünkü, bunu yapmak şarttır. Eğer tek bir paket içinde birden JSON nesne olabilir, ancak iki paket arasındaki tek JSON nesne bölünmüş olabilir sadece.
Ayrıca, bir çift önerir:
- soketli sunucular için PHP kullanmayın. bunun için yapılmış değil. haXe, özellikle neko uç bakabilirsiniz.
- Eğer gerçekten ihtiyacınız olmadığı sürece kendi şeyler bu tür yazmayın. sıkıcı ve aptal bir iş. soketli sunucular için çözümler milyonlarca neredeyse vardır. Ayrıca örneğin arasındaki şeffaf iletişimi sağlayan haXe remoting bir göz olmalıdır Bir flash istemci ve bir neko soketli sunucu. Ayrıca, smartfox ve red5 bir göz atın.
edit2: Eğer sorunu hafife alıyorlar ve sizin yaklaşım iyi değil. sadece yarım nesne okunur çünkü "splitter" tatili, ya da JSON ayrıştırıcı, eksik nesneleri beslenir, çünkü sağlam bir çözüm oluşturmak gerekir, böylece tel üzerinde diziler göndermek istediğiniz gün bir toplam arıza olmaz . ne yapmak istediğinizi kolayca yapılabilir: "}{"
, herhangi bir öğe "}"
append ancak son ve Başa eklenen "{"
herhangi bir unsuru kullanarak giriş bölünmüş ama ilk. Yine de ben ağır çünkü you will regret it noktada, böyle bir yaklaşımdan kaçınmaya öneririz. Eğer gerçekten yapmanız gerektiğini düşünüyorsanız, kendi bu gibi düşünüyor, o zaman en azından onları doğru yapmaya çalışın.
greetz
back2dos