【问题标题】:How to pass Json or Jsobject to javascript如何将 Json 或 Jsobject 传递给 javascript
【发布时间】:2021-01-30 08:10:23
【问题描述】:

如何将 Json 或 JObject 结果传递给 javascript 函数

代码:

我使用 Postgres 数据库 创建表:

CREATE TABLE "TLandPoint"
(
    gid integer NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
    geom geometry,
    "LandId" bigint NOT NULL,
    "SumSpace" bigint NOT NULL,
    "CityLevelId" bigint NOT NULL,
    CONSTRAINT "PK_TLandPoint" PRIMARY KEY (gid)
        USING INDEX TABLESPACE "MyDB"
)

TABLESPACE "MyDB";

ALTER TABLE "TLandPoint"
    OWNER to postgres;

插入样本数据

INSERT INTO "TLandPoint"(
     geom, "LandId", "SumSpace", "CityLevelId")
    VALUES ( '0101000000F30D15E765D355410C3A0D001F1B5041', 5698, 13500, 123001002);

并创建将geom转换为json的视图

CREATE OR REPLACE VIEW "TLandPointView"
 AS
 SELECT "TLandPoint".gid,
    st_asgeojson("TLandPoint".geom) AS jsonpoint,
    "TLandPoint"."LandId",
    "TLandPoint"."SumSpace",
    "TLandPoint"."CityLevelId"
   FROM "TLandPoint";

ALTER TABLE "TLandPointView"
    OWNER TO postgres;

使用 Linq 从视图中加载数据

var TLandPts =DbContext.TLandPointView.AsQueryable();

并使用此代码创建 JObject

JObject rss =
        new JObject(
        new JProperty("type", "FeatureCollection"),
        new JProperty("features",
                new JArray(from p in TLandPts select
                new JObject(
                new JProperty("id", p.gid),
                new JProperty("type", "Feature"),
                new JProperty("geometry", new JObject(JObject.Parse(p.jsonpoint))),
                new JProperty("properties",
                    new JObject(
                        new JProperty("LandId", p.LandId),
                        new JProperty("SumSpace", p.SumSpace),
                        new JProperty("CityLevelId", p.CityLevelId)
                        )
                
                    )
                )
                )
            )
        );
            var y = rss.ToString();

并使用此代码将 y 传递给我的函数

在控制器中

public IActionResult Index(){
ViewBag.Land = y;
return view()
}

在 index.cshtml 中

<script>
LoadData('@ViewBag.Land');
</script

进入javascript

function loadData(mydata){
    var PointSource = new ol.source.Vector({
        features: new ol.format.GeoJSON().readFeatures(mydata)
    });
    var PointLayer = new ol.layer.Vector({
        source: PointSource
    });
    map.addLayer(PointLayer);

}

javascript 中的代码更改为喜欢这张图片

但是当我将结果 y 变量复制到 javascript 中时,例如 mydata 没有任何问题

【问题讨论】:

  • 我使用c#和.net core5

标签: javascript c# json geometry


【解决方案1】:

解决的问题

string jsonArray = JsonConvert.SerializeObject(rss);

在javascript中

var MDy = JSON.parse(ArraypolyData.replace(/&quot;/g, '"'));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多