【问题标题】:How convert JSON to array Javascript ? ASP .NET Core MVC and JavaScript如何将 JSON 转换为数组 Javascript? ASP .NET Core MVC 和 JavaScript
【发布时间】:2019-05-16 03:29:54
【问题描述】:

我创建应用程序 ASP.NET Core MVC 2 以在地图上显示标记。我创建模型和控制器。

型号:

    public class MarkersModel
{

    public string title { get; set; }

    public double lat { get; set; }

    public double lng { get; set; }

}

控制器:

    public class MarkersController : Controller
{
    public IActionResult Index()
    {
        return View("Markers");
    }

    public IActionResult GetMarkers()
    {
        //landmarks
        var model1 = new MarkersModel {lat = 53.43382, lng = 14.55559, title = "Galaxy"};
        var model2 = new MarkersModel { lat = 53.42800, lng = 14.55124, title = "Kaskada" };

        //buildings
        var model3 = new MarkersModel { lat = 53.43263, lng = 14.55436, title = "Zig-Zag" };
        var model4 = new MarkersModel { lat = 53.43241, lng = 14.55568, title = "Baltica" };

        //stops
        var model5 = new MarkersModel {lat = 53.43269, lng = 14.54787, title = "Plac Grunwaldzki" };
        var model6 = new MarkersModel { lat = 53.43186, lng = 14.55485, title = "Plac Rodła"};

        //others
        var model7 = new MarkersModel { lat = 53.43133, lng = 14.55519, title = "KFC" };
        var model8 = new MarkersModel { lat = 53.43172, lng = 14.55384, title = "Kurczak z rożna"};

        //MarkersModel.
        return Json(new {model1, model2, model3, model4, model5, model6, model7, model8 });

        //return Json(new { Response = model1, model2, model3, model4});

    }
}

Ajax 我从控制器获取数据并放入变量“响应”中:

function getData() {
//alert(data["name"]);
$.ajax({
    url: '/Markers/GetMarkers', //Controller/Akcja

    type: 'POST',
    dataType: "json",
    data: JSON.stringify(),
    contentType: 'application/json; charset=utf-8',

    success: function(response) {
        initMap(response);
    },

    error: function(error) {
        alert('error');
    }

在函数initMap中显示对象JSON console.log(data):

function initMap(data) {

console.log(data);

    var map = new google.maps.Map(
    document.getElementById('map'),
    { zoom: 10, center: { lat: 53.42894, lng: 14.55302 } });

// test, do not work
var myMarkers = $.parseJSON(data);

}

如何将 JSON 转换为数组 Javascript 或如何在地图上显示添加标记?

【问题讨论】:

标签: javascript asp.net ajax model-view-controller markers


【解决方案1】:

这应该可以解决问题:

//Parse the array
var jsonArrayParsed = JSON.parse(yourJsonArray);

// Empty js array
var jsArray = [];

// Loop json array and add all the items to a regular js array.
for (var item in jsonArray){
  if (jsonArray.hasOwnProperty(item)){
    // add to your js array
    jsArray.push(item);
  }
}

【讨论】:

  • 所以我必须创建var arrayJs = new Array(); 并在循环中添加项目到arrayJs? if (jsonArray.hasOwnProperty(item)){arrayJs = item;}
  • 还有一件事,我的 JSON 有数据,例如:Object model1: {title: "Galaxy", lat: 53.43382, lng: 14.55559} 并使用您的帮助代码,我进入数组:Array(8) 0: "model1" 1: "model2" 2: "model3" 如何将 JASON 更改为数组中的值将例如如何输入JSON ?
猜你喜欢
  • 1970-01-01
  • 2012-05-24
  • 1970-01-01
  • 2012-12-09
  • 2014-06-21
  • 2022-12-03
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多