DotNetBrowser:将 json 字符串从 .Net 传递到接受 json 对象的 JavaScript 函数
DotNetBrowser : passing a json string from .Net to a JavaScript function accepting a json object
我正在尝试将 .net 中的 json 字符串转换为正确的类型,以便我可以通过 dotnetbrowser 桥将它传递给需要 [=32] 的 JavaScript 方法=]对象。
我在 .net 中的现有代码创建了一个 newton-soft json 对象,如下所示:
JObject obj = new JObject();
obj["src"] = image;
obj["width"] = imageViewModel.Width.Equals(0) ? 64 : imageViewModel.Width;
obj["height"] = imageViewModel.Height.Equals(0) ? 64 : imageViewModel.Height;
我已经从网页上捕获了我的 google 地图对象:
public void setGooleMap(JSObject map) {
CompositionRoot.Invoke(() => {
googleMap = map;
foreach (var marker in cachedMarkers) {
AddMarker(marker);
}
});
}
private JSObject googleMap;
现在我想将地图标记对象传递给 google地图对象上的函数:
public void AddMarker(JObject marker) {
//JSObject obj = JSObject.Create(marker.ToString()) as JSObject;
googleMap.GetProperty("addMarker").AsFunction().Invoke(googleMap, marker.ToString());
}
我更愿意像这样传递 "obj":
googleMap.GetProperty("addMarker").AsFunction().Invoke(googleMap, obj);
在此代码中,obj 为空。
如何将 .net json 字符串转换为我可以传递的 json 对象?
不幸的是,当前版本仅支持基本类型(数字、布尔和字符串)从 .NET 对象到 JS 对象的自动转换。
如果你想传递一个非原始值,你应该从它创建一个 JSObject 或 JSONString 对象,例如:
JSObject obj = browser.GetJavaScriptContext().CreateObject();
obj.SetProperty("src", image);
obj.SetProperty("width", imageViewModel.Width.Equals(0) ? 64 : imageViewModel.Width);
obj.SetProperty("height", imageViewModel.Height.Equals(0) ? 64 : imageViewModel.Height);
我正在尝试将 .net 中的 json 字符串转换为正确的类型,以便我可以通过 dotnetbrowser 桥将它传递给需要 [=32] 的 JavaScript 方法=]对象。
我在 .net 中的现有代码创建了一个 newton-soft json 对象,如下所示:
JObject obj = new JObject();
obj["src"] = image;
obj["width"] = imageViewModel.Width.Equals(0) ? 64 : imageViewModel.Width;
obj["height"] = imageViewModel.Height.Equals(0) ? 64 : imageViewModel.Height;
我已经从网页上捕获了我的 google 地图对象:
public void setGooleMap(JSObject map) {
CompositionRoot.Invoke(() => {
googleMap = map;
foreach (var marker in cachedMarkers) {
AddMarker(marker);
}
});
}
private JSObject googleMap;
现在我想将地图标记对象传递给 google地图对象上的函数:
public void AddMarker(JObject marker) {
//JSObject obj = JSObject.Create(marker.ToString()) as JSObject;
googleMap.GetProperty("addMarker").AsFunction().Invoke(googleMap, marker.ToString());
}
我更愿意像这样传递 "obj":
googleMap.GetProperty("addMarker").AsFunction().Invoke(googleMap, obj);
在此代码中,obj 为空。 如何将 .net json 字符串转换为我可以传递的 json 对象?
不幸的是,当前版本仅支持基本类型(数字、布尔和字符串)从 .NET 对象到 JS 对象的自动转换。
如果你想传递一个非原始值,你应该从它创建一个 JSObject 或 JSONString 对象,例如:
JSObject obj = browser.GetJavaScriptContext().CreateObject();
obj.SetProperty("src", image);
obj.SetProperty("width", imageViewModel.Width.Equals(0) ? 64 : imageViewModel.Width);
obj.SetProperty("height", imageViewModel.Height.Equals(0) ? 64 : imageViewModel.Height);