根据http://www.newtonsoft.com/json/help/html/PopulateObject.htm,您可以通过JSON字符串中定义的值来更新现有实例。我的问题是,我必须填充该对象的数据已经被解析为JToken对象。我当前的方法如下所示:
Private Sub updateTarget(value As JToken, target as DemoClass)
Dim json As String = value.ToString(Formatting.None)
JsonConvert.PopulateObject(json, target)
End Sub
是否有更好的方法来完成此任务,而不必首先还原在创建JToken时已经完成的解析?
使用JToken.CreateReader()
阅读器并将其传递给JsonSerializer.Populate
。返回的阅读器是a
JTokenReader
,它遍历预先存在的JToken
层次结构,而不是序列化为字符串并进行解析。
既然您标记了问题c#
,这c#
是完成任务的扩展方法:
public static class JsonExtensions
{
public static void Populate<T>(this JToken value, T target) where T : class
{
using (var sr = value.CreateReader())
{
JsonSerializer.CreateDefault().Populate(sr, target); // Uses the system default JsonSerializerSettings
}
}
}
和VB.NET中的等效项:
Public Module JsonExtensions
<System.Runtime.CompilerServices.Extension>
Public Sub Populate(Of T As Class)(value As JToken, target As T)
Using sr = value.CreateReader()
' Uses the system default JsonSerializerSettings
JsonSerializer.CreateDefault().Populate(sr, target)
End Using
End Sub
End Module
问题内容: 我使用Json.Net这样填充一个类: 上面的结果JSON字符串填充了我的类中的几个属性。稍后我有一个新的JSON字符串,并希望使用其余属性填充相同的类。是否可以使用JSON.NET或方法?我基本上想在上面的代码行中添加/添加到我填充的帐户对象中。 我的课: 问题答案: 是的,您可以使用第二个JSON字符串来填充现有对象的属性。 这是一个例子: 输出: 小提琴:https : //do
作为一项任务,我被要求制作一个Swing GUI。在第一部分中,我创建了一个()对象()。目前所需要的是对所述数组列表进行排序,并将其显示为GUI中的。我制作了一个,当按下它时,它应该进行排序和显示。 但是,一旦按下它将只显示表标题而不显示数组列表中的信息,我应该做什么不同的事情呢?我已经在下面包括了GUI类和main类。
我有一个要填充信息的对象。我从许多不同的服务中检索信息。我做了一个助手类,它有一个公共方法,然后有许多私有方法来调用服务。我写的东西很好,但我不确定这是否是正确的方法。 您可能想知道为什么我需要一个包含所有这些信息的对象。我需要它全部在一个对象中,因为我从这个java对象创建了一个json对象并将其传递给javascript层。 我的方法有什么问题?我是否应该遵循一种编程范式来做这样的事情? 例子
在这里,我试图通过使用来填充我的对象数组。问题是,我得到了一个错误,指出数组在1处超出了索引 此外,文件中的每个标记都由一个空格分隔,这样我就可以在字符串数组中拆分标记,并在属性上进行拆分 文件内容 (名称,作者,发布,编号,版权,科学) 那么有人能帮我写代码吗?或者甚至建议另一种方法?
为什么下面的代码是错误的?< code >[T;N]转换为< code>Vec 错误: 游戏场
问题内容: 我对Java,JavaFX和编程一般还是有点陌生,但是我遇到的问题困扰着我。 在大多数教程中,我查找了有关填充ListView(更具体地说,使用ObservableArrayList)的方法,最简单的方法是从String的ObservableList中创建它,如下所示: 但是我不想使用字符串。我想使用我制作的名为Words的自定义对象: 每个Word对象只有两个属性:wordStr