我遇到一个问题,在处理VB6项目时,需要将Object序列化为JSON对象(或JSON格式的字符串),然后通过HTTP Request(POST方法)将其发送到另一个Web应用程序(MVC.NET) )将复杂对象作为参数的方法。我正在尝试利用MVC.Net 3+以及将JSON对象反序列化为我的类(Almighty)对象的能力。目前我可以使用可以将格式正确的字符串转换为JSON对象的VB-JSON库,但是我想将对象序列化为JSON对象,或者首先将其转换为格式正确的字符串,然后再转换为JSON对象(通过使用VB-JSON)。
VB6全能类模块是我想序列化的对象的一个例子(尽管我需要能够序列化几乎任何类对象)。
是否有一个库(或解决方法)要在VB6中完成此任务?
Option Explicit
Private mName As String
Private mPhone As String
Private mAge As Integer
Public Property Get Name() As String
Name = mName
End Property
Public Property Let Name(ByVal vNewValue As String)
mName = vNewValue
End Property
Public Property Get Phone() As String
Phone = mPhone
End Property
Public Property Let Phone(ByVal vNewValue As String)
mPhone = vNewValue
End Property
Public Property Get Age() As Integer
Age = mAge
End Property
Public Property Let Age(ByVal vNewValue As Integer)
mAge = vNewValue
End Property
这里有一些我现在在VB6项目中用于创建JSON对象之前将其发送到MVC.Net应用程序。问题是VB-JSON中的JSON.parse()只接受字符串而不接受对象。任何想法,我将如何做这样的事情:
Dim a As cAlmighty
Set a = New cAlmighty
a.Name = "Igor"
a.Age = 18
a.Phone = "123-123-1234"
Dim param As Object
Set param = JSON.parse(a) '<--- THIS IS THE PROBLEM, VB-JSON''s parse method accepts only string which means I would need to find a way to serialize the object into JSON which obviously preferred or actually build a string simply like this: { ""Name"": """ & a.Name & """, ""Age"": " & a.Age & " }" which is primitive way of serialization (no validation, etc.)
在我将param作为JSON对象后,我会通过HTTP Post Request将其发送到我的MVC.net控制器
支持信息
MVC.Net控制器方法
/// <summary>
/// 1. Takes an Almighty object as a parameter from an old VB6 (COM+) application
/// 2. Do stuff with Almighty
/// 3. Return an XML formatted string back to VB6 application.
/// </summary>
[HttpPost]
public string CalledByVB6App(Almighty param) {
if (param != null) return "<Success>True</Success>";
return "<Success>False</Success>";
}
C#全能对象类
public class Almighty
{
public string Name { get; set; }
public string Phone { get; set; }
public int Age { get; set; }
}
答案 0 :(得分:0)
在VB6类模块中获取保存事件。
可持续财产
设置一个值,该值确定对象是否可以跨实例保存和还原数据。只能在设计时设置。
语法
object.Persistable [= number]
Persistable属性语法包含以下部分:
部分描述 object一个对象表达式,其值为“应用于”列表中的一个对象。 number一个整数,指定持久性行为,如“设置”中所述。
设置
号码的设置为:
常数设定说明 vbNotPersistable 0(默认)无法保留对象。 vbPersistable 1对象可以保留。
说明
Persistable属性仅适用于公共和可创建的类。当Persistable设置为vbPersistable时,会向该类添加以下事件:InitProperties,ReadProperties和WriteProperties。 PropertyChanged方法也被添加到类中。
向MSDN发送反馈。请点击此处查看MSDN Online资源。