C#转VB.NET遇到的问题

飘遥诗涯 2014-12-08 02:52:54
代码是从csdn下载的,关于在.NET中如何解析JSON数据的,地址是:http://blog.csdn.net/zhoufoxcn/article/details/6254657
然后我试着转成VB.NET,但总是提示各种错误,想请大家帮忙看看我转化的哪些地方有问题?中间一部分就没写了,定义属性那些都一样

Imports System.Runtime.Serialization
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
Imports Newtonsoft.Json.Converters

Public Class Class2
Public Function JsonConvertDemo()
Dim user As User = New User() {UserId = 1, UserName = "李刚", CreateDate = DateTime.Now.AddYears(-30), Birthday = DateTime.Now.AddYears(-50), Priority = Priority.BelowNormal, Salary = 5000}
'JsonConvert类在Newtonsoft.Json.Net35.dll中,注意到http://www.codeplex.com/json/下载这个dll并添加这个引用
'JSON序列化
Dim result As String = JsonConvert.SerializeObject(User)
Console.WriteLine("使用JsonConvert序列化后的结果:{0},长度:{1}", result, result.Length)
'JSON反序列化
user = JsonConvert.DeserializeObject < user > (result)
Console.WriteLine("使用JsonConvert反序列化后的结果:UserId:{0},UserName:{1},CreateDate:{2},Priority:{3}", user.UserId, user.UserName, user.CreateDate, user.Priority)
End Function

'<Serializable()>
Public Class User
'' <summary>
'' 编号
'' </summary>
Public Property UserId As Integer
Get

End Get
Set(ByVal value As Integer)

End Set
End Property
.........
Public Sub User()
Urls = New List(Of String)
End Sub
End Class
'' <summary>
'' 权利级别
'' </summary>
Public Enum Priority As Byte
Lowest = 1
BelowNormal = 2
Normal = 4
AboveNormal = 8
Highest = 22
End Enum
End Class

...全文
400 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
飘遥诗涯 2015-03-13
  • 打赏
  • 举报
回复
忘了提供解决方案地址了,下面: http://www.haodaima.net/art/1495924
飘遥诗涯 2015-03-13
  • 打赏
  • 举报
回复
谢谢大家的回答,已经找到解决方案了,我换了一种思路解决了这个JSON读取的问题。
zixingcheng_ 2014-12-10
  • 打赏
  • 举报
回复
所给不全引起的部分报错已经注释,vb语法会稍微比C#麻烦些,但整体更容易阅读,代码版面要美观很多很多很多。。。 Imports System.Runtime.Serialization Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq Imports Newtonsoft.Json.Converters Public Class Class2 Public Function JsonConvertDemo() Dim user As User = New User() 'UserId = 1, UserName = "李刚", CreateDate = DateTime.Now.AddYears(-30), Birthday = DateTime.Now.AddYears(-50), Priority = Priority.BelowNormal, Salary = 5000} With user .UserId = 1 '.UserName = "李刚" '... z自己补,User属性不全 End With 'JsonConvert类在Newtonsoft.Json.Net35.dll中,注意到http://www.codeplex.com/json/下载这个dll并添加这个引用 'JSON序列化 'Dim result As String = JsonConvert.SerializeObject(user) 'Console.WriteLine("使用JsonConvert序列化后的结果:{0},长度:{1}", result, result.Length) 'JSON反序列化 'user = JsonConvert.DeserializeObject < user > (result) 'Console.WriteLine("使用JsonConvert反序列化后的结果:UserId:{0},UserName:{1},CreateDate:{2},Priority:{3}", user.UserId, user.UserName, user.CreateDate, user.Priority) End Function '<Serializable()> Public Class User '' <summary> '' 编号 '' </summary> Public Property UserId As Integer Get End Get Set(ByVal value As Integer) End Set End Property '......... Public Sub User() 'Urls = New List(Of String) End Sub End Class '' <summary> '' 权利级别 '' </summary> Public Enum Priority As Byte Lowest = 1 BelowNormal = 2 Normal = 4 AboveNormal = 8 Highest = 22 End Enum End Class
Tiger_Zhao 2014-12-10
  • 打赏
  • 举报
回复
先去装个 .Net Reflector。
把 C# 的代码编译成 dll。
用 Reflector 打开该 dll,查看语言选 Visual Basic,就能查看反编译出来的 VB.Net 代码了。
如果装了 File Disassembler 插件,还可以选定整个 NameSpace,批量反编译代码。

.Net 框架下的语言转换都可以通过这种方式,手工要做的就是建工程、把源代码包含进来。
vbfool 2014-12-10
  • 打赏
  • 举报
回复
引用 2 楼 xu3180497 的回复:
[quote=引用 1 楼 kongwei521 的回复:] Dim user As User = New User() {} Dim result As String = JsonConvert.SerializeObject(User)//感觉这里会不对 参考VB.NET 用JSON http://www.csharpwin.com/dotnetspace/11045r7150.shtml http://www.haogongju.net/art/1495924
Dim user As User = New User() {UserId = 1, UserName = "李刚", CreateDate = DateTime.Now.AddYears(-30), Birthday = DateTime.Now.AddYears(-50), Priority = Priority.BelowNormal, Salary = 5000} 这句一直提示无效[/quote] VB.NET那里需要用new XXX() With{.XXX=XXX} 比C#里多了个With关键字,每个属性面前多了个点。 这个是VB的语法,具体你可以搜“With关键字”。
devmiao 2014-12-09
  • 打赏
  • 举报
回复
New User() With {.UserId = 1 ...
iyomumx 2014-12-09
  • 打赏
  • 举报
回复
写成 .UserId = 1 这样的形式,前面要有一个成员访问符
蝶恋花雨 2014-12-08
  • 打赏
  • 举报
回复
引用 2 楼 xu3180497 的回复:
Dim user As User = New User() {UserId = 1, UserName = "李刚", CreateDate = DateTime.Now.AddYears(-30), Birthday = DateTime.Now.AddYears(-50), Priority = Priority.BelowNormal, Salary = 5000} 这句一直提示无效
你看看我给你的两个链接吧,VB.NET我敲起来无比郁闷。不熟悉VB,NET
飘遥诗涯 2014-12-08
  • 打赏
  • 举报
回复
引用 1 楼 kongwei521 的回复:
Dim user As User = New User() {} Dim result As String = JsonConvert.SerializeObject(User)//感觉这里会不对 参考VB.NET 用JSON http://www.csharpwin.com/dotnetspace/11045r7150.shtml http://www.haogongju.net/art/1495924
Dim user As User = New User() {UserId = 1, UserName = "李刚", CreateDate = DateTime.Now.AddYears(-30), Birthday = DateTime.Now.AddYears(-50), Priority = Priority.BelowNormal, Salary = 5000} 这句一直提示无效
蝶恋花雨 2014-12-08
  • 打赏
  • 举报
回复
Dim user As User = New User() {} Dim result As String = JsonConvert.SerializeObject(User)//感觉这里会不对 参考VB.NET 用JSON http://www.csharpwin.com/dotnetspace/11045r7150.shtml http://www.haogongju.net/art/1495924

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧