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

...全文
371 11 打赏 收藏 转发到动态 举报
写回复
用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
名称:快速入门 地址:http://chs.gotdotnet.com/quickstart/ 描述:本站点是微软.NET技术的快速入门网站,我们不必再安装.NET Framework中的快速入门示例程序,直接在网上查看此示例即看。 名称:微软官方.NET指导站点 地址:http://www.gotdotnet.com/ 描述:上面的站点是本站的一个子站点,本站点提供微软.NET官方信息,并且有大量的用户源代码、控件下载,微软.NET开发组的人员也经常在此站点发表一些指导性文章。 名称:SourceForge 地址:http://www.sourceforge.net 描述:世界上最大的Open Source项目在线网站,上面已经有.NET的各种大型Open Source项目上千件,包括SharpDevelop、NDoc、Mono等都是在此站点发布最新源代码信息。 名称:CodeProject 地址:http://www.codeproject.com 描述:很多非官方的中小型示例源代及文章,相当全面,基本上我们想要的各种方面的资料都可以在此处查找。 名称:Fabrice's weblog 地址:http://dotnetweblogs.com/FMARGUERIE/Story/4139.aspx 描述:这是一个WebLog形式的在线日志网站,定期更新,包括.NET相关的工具、混淆器、反编译器等各种信息,十分值得收藏。 名称: 地址:http://www.aspalliance.com/aldotnet/examples/translate.aspx 描述:c#翻译为vb.net,提供一个文本框,将你的C#源代码贴进去,就可以帮你翻译成VB.NET语法。 名称:CSharpHelp 地址:http://www.csharphelp.com 描述: 专业的C#语言在线帮助网站,主要提供C#语言方面的技术文章。专业性很强。 名称:DotNet247 地址:http://www.dotnet247.com 描述:最好的索引网站,分别按照门类及命名空间的索引,也提供了Microsoft KB知识库。 名称:ASP.NET 地址:http://www.asp.net 描述:微软.NET webform的老巢,资料和实例代码都非常难得。 名称:微软.NET Winform 地址:http://www.windowsforms.net/ 描述:微软.NET Winform的老巢。 名称:微软 KnowledgeBase 地址:http://support.microsoft.com/ 描述:微软知识库,开发的时候遇到的怪问题,可能会在这里找到答案。 名称:MSDN 地址:http://msdn.microsoft.com/ 描述:这个就不用多说了吧,虽然出了中文MSDN,但是资料还是不够全,英文的就什么都有了。 名称:HotScripts 地址:http://www.hotscripts.com/ 描述:Welcome to HotScripts.com, the net’s largest PHP, CGI, Perl, javascript and ASP script collection and resource web portal. We currently have 24,004 scripts across 11 different programming languages and 1,240 categories, as well as links to books, articles, as well as programming tips and tutorials. 名称:ASPAlliance 地址:http://www.aspalliance.com/ 描述:提供相当丰富的文章和示例代码,思路匮乏的时候可以找找思路 名称:CSDN文档中心 地址:http://dev.csdn.net/ 描述:中文的,资料还算丰富,可以作为国内首选。 名称:DOTNET中华网 地址:http://www.aspxcn.com/ 描述:2002-2003年的时候这个站点很不错的,不过现在好像管理不得力,有点疲软,资料更新也不过及时,论坛里人也不够热心了,因为希望它好起来,所以列出来。资料都比较老,不过有些D版的东西还可以。提供很多学习代码。 名称:中国DotNet俱乐部 地址:http://www.chinaspx.com/ 描述:有点公司背景的网站,很健壮,资料更新及时,比较丰富。论坛解答也不错。 名称:【孟宪会之精彩世界】 地址:http://dotnet.aspx.cc/ 描述:MS-MVP的个人站点,包括了他所有的经验文章,还是很值得一看的。 名称:dotNET Tools.org 地址:http://www.dotnettools.org 描述:ccboy,也就是CSDN的小气的神的站点,里面有很多关于.NET等的好东东。 名称:博客堂 地址:http://blog.joycode.com/ 描述:半官方性质的MS-MVP汇集blog,大家可以在这里接触到最新的技术,了解发展趋势,对技术的探索等等,优秀的文章。 名称:DotNetBips.com - Applying .NET 地址:http://www.dotnetbips.com/ 描述:该站点的文章,涉及到了整个.NET,从底层的IL到语言到架构,文章很多,质量还不错。 名称:C# Frequently Asked Questions 地址:http://blogs.msdn.com/csharpfaq/ 描述:The C# team posts answers to common questions 名称:正则表达式 地址:http://www.regexplib.com/ 描述: 正则表达式学习站点 名称:WINDOW formS FAQ 地址:http://www.syncfusion.com/FAQ/Winforms/ 描述:常见的forms faq问题,很多问题都可以在这里找到答案。 名称:ASP.NET 常用类库说明 地址:http://www.123aspx.com/rotor/default.aspx 描述:不用多说,看标题就知道是关于asp.net的名称空间的 名称:ASP.NET System.Web.Mail 地址:http://www.systemwebmail.com/faq/3.8.aspx 描述:邮件发送常见问题解决方法 名称:VB.NET & C# 比较 地址:http://www.harding.edu/USER/fmccown/WWW/vbnet_csharp_comparison.html 描述:VB.NETC#语法区别 名称:VB.NET架构师 BLOG 地址:http://panopticoncentral.net/ 描述:不用多说,想了解VB.NET的朋友不可不去的站点(PS,不知道我有没有记错是不是这个地址) 名称:索克论坛 地址:http://www.sorke.com/bbs/Boards.asp

16,549

社区成员

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

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