2009-07-14 8 views

Répondre

2

Les objets JSON réels commencent et se terminent toujours par des caractères {et} correspondants. Donc, vous devriez être capable de construire un analyseur de flux qui détermine correctement les limites à la volée, sans avoir besoin de connaître les longueurs à l'avance. Pour plus de détails sur la syntaxe, voir json.org.

+0

True. De plus, les valeurs JSON légales incluent également des tableaux, qui sont inclus dans [] (les valeurs json légales sont des objets et des tableaux). – StaxMan

1

Les objets JSON valides ont des délimiteurs équilibrés. Pouvez-vous être sûr à 100% que vous ne recevrez que des objets valides? Pouvez-vous avoir des problèmes de réseau? Qu'en est-il si l'expéditeur meurt en cours de transmission? Je pense que vous aurez besoin de:

a). Un accord sur les objets JSON que vous recevez afin que vous puissiez ignorer un flux partiel jusqu'à ce que vous voyiez le début de l'une de vos charges acceptées. Par exemple. tout est un objet "Enveloppe"

b). un mécanisme de récupération semblable à une pile pousse et "popping" compter les délimiteurs d'ouverture et de fermeture jusqu'à ce que vous soyez sûr que vous avez le début d'un nouvel enregistrement. Avec une corruption suffisamment pathalogique, cela semble difficile à faire de manière fiable.

Je préfère de loin la première option.