创建从 C# 到 JavaScript 的动态 JSON

Posted

技术标签:

【中文标题】创建从 C# 到 JavaScript 的动态 JSON【英文标题】:Creating a dynamic JSON from C# to JavaScript 【发布时间】:2015-12-25 18:38:56 【问题描述】:

我是 C# 编程的新手,我正在为我的毕业生开发一个基于地理位置的应用程序。

我有一个负责创建地图和插入标记的 javascript。但是标记是从 JSON 文件中插入的,如下所示:


    "Id": 1,
    "Latitude": -19.212355602107472,
    "Longitude": -44.20234468749999,
    "Descricao": "Conteúdo do InfoBox 1"
,

然后。他们这样称呼这个文件:

函数 carregarPontos()

$.getJSON('js/pontos.json', function(pontos) 

    $.each(pontos, function(index, ponto) 

        var marker = new google.maps.Marker(
            position: new google.maps.LatLng(ponto.Latitude, ponto.Longitude),
            title: "Meu ponto personalizado! :-D",
            map: map
        );

    );

);



carregarPontos();

我的问题是我需要从 mysql DB 中获取这些点。

我创建了一个 DataTable,其中有我需要传递给这个 JSON 的信息,但我没有任何关于如何制作它的线索。

有什么帮助吗?请记住,我是 C# 和 JSON 编程的菜鸟。

【问题讨论】:

【参考方案1】:

虽然标准 C# 库提供了一些 JSON 支持,但您最好使用 Newtonsoft 提供的免费 JSON.Net 库。您可以通过 NuGet 包管理器将其添加到 Visual Studio 中的项目中(项目 > 管理 NuGet 包)。

然后确保您的文件有:using Newtonsoft.Json;using Newtonsoft.Json.Linq;

要解析 JSON,只需写 dynamic json = JObject.Parse(str); 然后你可以像在 JavaScript 中一样访问它的属性,唯一的区别是未定义的属性将返回 null。

dynamic json = JObject.Parse("example: \"Hello world\"");
Console.Write(json.example); // prints "Hello world"

要编写 JSON,只需创建一个 JObject,然后将字符串、数字、JArrays 和 JObjects 附加到它。

dynamic json = new JObject();
json.example = "Hello world";
json.myArray = new JArray(1, 2, 3, 4);
Console.Write(json);
//  
//    "example": "Hello world",
//    "myArray": [
//      1,
//      2,
//      3,
//      4
//    ]
//  

【讨论】:

【参考方案2】:

据我了解,您的 sql 数据库中存储了一些数据,您将从中获取数据并传递给 javascript 函数。 如果是这种情况,那么您可以参考此链接。

Pass json/javascript data/objects to c# function using ajax

给出的示例是使用 aspx 方法而不是 MVC,但它会类似。

【讨论】:

以上是关于创建从 C# 到 JavaScript 的动态 JSON的主要内容,如果未能解决你的问题,请参考以下文章

C# 从动态创建的按钮中显示/隐藏动态创建的按钮

从 json 动态创建的 Javascript 表单输入,需要将对象映射到另一个对象的正确字段并保存

从 JavaScript 创建一个可下载的附件?

在 C# 4 中使用动态类型访问 javascript 对象的属性

C#:如何在 Blazor Wasm 托管中将动态 Razor 组件从服务器发送到客户端?

Asp.net C# 使用 Javascript 将数据从 gridview 显示到 TextBox