Suite

Chaîne JSON de VB.NET à Javascript de plus de 100 000 caractères


J'ai une chaîne de JSON correctement formatée à partir d'une fonction VB.NET que j'essaie de transmettre à JavaScript où je peux la convertir en une couche vectorielle OpenLayers. La chaîne peut être de longueur variable, parfois aussi petite que 5 000 caractères et parfois aussi longue que 40 000 000 caractères.

Voici un petit exemple du JSON :

"{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-79.546437887619277,41.450810394091974] ,[-79.546373336415854,41.450878338383419],[-79.546186240728744,41.450930517576978],[-79.546030161587709,41.451004424821683],[-79.546437887619277,41.4508103940980001974]]]]}, "tract110000:1100"06" "properties11": " ","acres":0.585540920000}},… etc.

Si la chaîne contient moins de 100 000 caractères, je peux l'envoyer avec succès à ma fonction JavaScript en tant que variable de chaîne normale OU en tant que variable sérialisée, je peux la lire avec succès en tant que GeoJSON et ajouter les fonctionnalités à ma carte OpenLayers à l'aide des méthodes OpenLayers GeoJSON normales. Le code JavaScript suivant prend la chaîne sérialisée VB.NET et l'ajoute à la carte ;

var geojson_format = new OpenLayers.Format.GeoJSON(); var vector_layer = new OpenLayers.Layer.Vector("query_POSTGIS"); var parsedJSON = JSON.parse(outputStr); alert(geojson_format.isValidType(parsedJSON, "FeatureCollection")); var geoJsonStr = geojson_format.read(parsedJSON, "FeatureCollection"); vector_layer.addFeatures(geoJsonStr);

Ce code fonctionne très bien jusqu'à ce que j'atteigne la limite de 100 000 caractères. Des suggestions sur la façon de faire fonctionner cela avec des chaînes de plus de 100 000 caractères ?


J'ai pu résoudre le problème. Il semble que dans .NET il y ait une limite à la longueur d'une chaîne sérialisée et vous devez déclarer explicitement un maxJsonLength dans votre Web.config. J'ai pu résoudre le problème en ajoutant ce qui suit à mon Web.config :

   


Voir la vidéo: 2013 - Arrays (Octobre 2021).