#json #vb.net #class #json.net
#json #vb.net #класс #json.net
Вопрос:
У меня есть класс, как показано ниже. и я попытался преобразовать его в XML и JSON, но оба они возвращают пустое значение: {}
Public Class PivotSet
Public Shared Property selectedlines As Boolean()
Public Shared Property selectedlabels As Boolean()
Public Shared Property linescolors As Integer()
Public Shared Property labelcolors As Integer()
Public Shared Property linethick As Boolean()
Public Shared Property labelbold As Boolean()
Public Shared Property pivotPeriod As String
Public Sub New()
selectedlines = {True, True, True, True, True, True, True}
selectedlabels = {True, True, True, True, True, True, True}
linescolors = {16711680, 255, 255, 255, 32768, 32768, 32768}
labelcolors = {16711680, 255, 255, 255, 32768, 32768, 32768}
linethick = {True, True, True, True, True, True, True}
labelbold = {True, True, True, True, True, True, True}
pivotPeriod = "Yearly"
End Sub
и следующий код для преобразования его в XML:
Dim settings As New PivotSet
Dim x As New Xml.Serialization.XmlSerializer(settings.GetType)
Dim js As New JsonSerializer()
Dim fs As New FileStream("d:set.xml", FileMode.Create)
Dim writer As New StreamWriter(fs, New System.Text.UTF8Encoding)
'serialize to XML
x.Serialize(writer, settings)
'serialize to json
File.WriteAllText("d:Settings.json", JsonConvert.SerializeObject(settings))
Но результат для JSON равен {}, а также для XML
<?xml version="1.0" encoding="utf-8"?>
<PivotSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
Кто-нибудь может помочь мне в решении этих проблем?
Комментарии:
1. Измените все массивы в списке (типа [type]). Добавьте новые значения: и т.д.
selectedlines = New List(Of Boolean) From {True, True, True, True, True, True, True}
ЗатемDim myPivot = New PivotSet() Dim pivotSets = JsonConvert.SerializeObject(myPivot)
2. Спасибо. но, к сожалению, после внесения изменений он снова возвращает пустую строку JSON / XML.
3. Вы удалили эту
Shared
вещь из свойств класса? Сделайте, как описано, вы увидите, что это работает.
Ответ №1:
Удалите Shared из свойств, и он должен работать:
Public Property selectedlines As Boolean()
Public Property selectedlabels As Boolean()
Public Property linescolors As Integer()
Public Property labelcolors As Integer()
Public Property linethick As Boolean()
Public Property labelbold As Boolean()
Public Property pivotPeriod As String
Комментарии:
1. Также спасибо за вашу помощь. Ваш ответ также работает, удаляя общее выражение.