从VB.NET中的Form POST POST JSON字符串

时间:2018-03-01 22:30:21

标签: json vb.net javascriptserializer

以下是我的情况:

我有一个表单正在收集textarea中的项目列表作为JSON对象。

表单textarea如下所示:

<textarea id="listItems">
    [
     {"id":"1","name":"apple"},
     {"id":"2","name":"orange"},
     {"id":"3","name":"banana"}
    ]
</textarea>

我需要能够解析该字符串并将每个项目POST到SQL表中。

ItemID | ItemName
-----------------
1      | apple
2      | orange
3      | banana

我认为我对使用JavaScriptSerializer类没有很好的理解。我正在使用VB.net

我还没有任何server-side代码,但我知道我必须解析出JSON字符串,然后遍历它然后保存每个项目。

我不能只将JSON字符串转换为DataTable,然后遍历该临时表吗?

不确定。我试图解决这个问题,但有些帮助会很有用。

此外,我正在引用一些SO帖子,看看是否可以解决这个问题

This one

This one

2 个答案:

答案 0 :(得分:0)

所以期待服务器上的以下Json对象

[
  {"id":"1","name":"apple"},
  {"id":"2","name":"orange"},
  {"id":"3","name":"banana"}
]

你可以这样做:

Public Function DoSomething()

   Dim jsonObject = "[{""id"":""1"",""name"":""apple""},{""id"":""2"",""name"":""orange""},{""id"":""3"",""name"":""banana""}]"
   Dim obj = New JavaScriptSerializer().Deserialize(Of TestObject())(jsonObject)

End Function

使用此模型

Public Class TestObject
    Public Property id As Integer
    Public Property name As String
End Class

在运行时,您将在obj中拥有一个对象数组,然后您可以将其操作并填入DataTable或直接提供给数据库。将Json转换为Object不是您在这里唯一的选择,但它很方便。

由于您没有指定您正在使用的上下文,因此有点不清楚可能是您案例的最佳解决方案。也许您想对不同的Json框架(例如Json.net)以及数据库处理数据进行一些研究,以便您了解如何以及何时进行。

答案 1 :(得分:0)

这是我找到的最佳答案,我调整了它以满足我的需求。

我还包含了回答我问题的重复POST的链接。

我也引用了另一个类似情况的类似帖子。

这是.Net小提琴的链接,展示了我在寻找的东西。

DEMO

How to deserialize JSON which can be an array or a single object

How to handle both a single item and an array for the same property using JSON.net