以下是我的情况:
我有一个表单正在收集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帖子,看看是否可以解决这个问题
答案 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小提琴的链接,展示了我在寻找的东西。
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