Daha çox

JSON String VB.NET-dən Javascript-ə qədər 100.000 simvol


Bir VB.NET funksiyasından düzgün şəkildə formatlanmış bir JSON simli var ki, onu OpenLayers vektor qatına çevirə biləcəyim JavaScript-ə keçməyə çalışıram. Simli dəyişkən uzunluğu ola bilər, bəzən 5.000 simvol qədər, bəzən də 40.000.000 simvol qədər.

JSON-un kiçik bir nümunəsi:

"{" type ":" FeatureCollection "," features ": [{" type ":" Feature "," həndəsə ": {" type ":" MultiPolygon "," koordinatlar ": [[[[- 79.546437887619277,41.450810394091974] , [- 79.546373336415854,41.450878338383419], [- 79.546186240728744,41.450930517576978], [- 79.546030161587709,41.451004424821683], [- 79.546437887600 "" 110046 "110046" 11640946 "2003, 2011, 840" "," acres ": 0.585540920000}},… və s.

Sətir 100.000 simvoldan azdırsa, mən onu JavaScript funksiyasına normal bir simli dəyişən və ya seriallaşdırılmış bir dəyişən olaraq göndərə bilərəm, uğurla GeoJSON olaraq oxuya bilərəm və normal OpenLayers GeoJSON metodlarından istifadə edərək xüsusiyyətləri OpenLayers xəritəmə əlavə edə bilərəm. Aşağıdakı JavaScript VB.NET seriallaşdırılmış simli götürür və xəritəyə əlavə edir;

var geojson_format = yeni OpenLayers.Format.GeoJSON (); var vector_layer = yeni OpenLayers.Layer.Vector ("query_POSTGIS"); var parsedJSON = JSON.parse (outputStr); xəbərdarlıq (geojson_format.isValidType (parsedJSON, "FeatureCollection")); var geoJsonStr = geojson_format.read (parsedJSON, "FeatureCollection"); vector_layer.addFeatures (geoJsonStr);

Bu kod 100.000 simvol limitinə çatana qədər əla işləyir. Bu işi 100.000 simvoldan çox simli işləmək üçün necə etmək olar?


Mən məsələni həll edə bildim. Göründüyü kimi .NET-də seriallaşdırılan bir sətrin nə qədər ola biləcəyi üçün bir məhdudiyyət var və Web.config-də bir maxJsonLength-i açıq şəkildə elan etməlisiniz. Web.config-ə aşağıdakıları əlavə edərək problemi həll edə bildim:

   


Videoya baxın: json parse coding practice (Sentyabr 2021).