Skip to content

Commit

Permalink
Update JSON module
Browse files Browse the repository at this point in the history
  • Loading branch information
eloaders committed Jul 6, 2014
1 parent 4e4e0ce commit f66ae4a
Showing 1 changed file with 26 additions and 8 deletions.
34 changes: 26 additions & 8 deletions src/i-nex/.src/JSON.module
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@
' You should have received a copy of the GNU General Public License
' along with this program. If not, see <http://www.gnu.org/licenses/>.

Public {Null} As Variant
Property Read {Null} As Variant

Private $vNull As Variant
Private $sStr As String
Private $iPos As Integer
Private $bUseNull As Boolean
Expand Down Expand Up @@ -145,20 +146,31 @@ Private Sub ReadNumber(sNumber As String) As Variant

Dim sCar As String
Dim vNumber As Variant
Dim bFloat As Boolean

Do
sCar = GetChar()
If Not sCar Then Break
If InStr("-+0123456789eE.", sCar) = 0 Then
If InStr(".eE", sCar) Then
bFloat = True
Else If InStr("-+0123456789", sCar) = 0 Then
Dec $iPos
Break
Endif
sNumber &= sCar
Loop

Try vNumber = CFloat(sNumber)
If IsNull(vNumber) Then Error.Raise("Incorrect number")
Return vNumber
If bFloat Then
Try vNumber = CFloat(sNumber)
If Not Error Then Return vNumber
Else
Try vNumber = CInt(sNumber)
If Not Error Then Return vNumber
Try vNumber = CLong(sNumber)
If Not Error Then Return vNumber
Endif

Error.Raise("Incorrect number")

End

Expand Down Expand Up @@ -255,13 +267,13 @@ Private Sub WriteValue(vVal As Variant)
End


Public Sub Decode(JSONString As String, Optional bUseNull As Boolean) As Variant
Public Sub Decode(JSONString As String, Optional UseNull As Boolean) As Variant

Dim vVal As Variant
$sStr = JSONString
$iPos = 1
$bUseNull = bUseNull
If bUseNull And If IsNull({Null}) Then {Null} = VarPtr({Null})
$bUseNull = UseNull
If UseNull And If IsNull($vNull) Then $vNull = VarPtr($vNull)
vVal = ReadValue()
$bUseNull = False
$sStr = ""
Expand All @@ -276,3 +288,9 @@ Public Sub Encode(Value As Variant) As String
Return $sStr

End

Private Function Null_Read() As Variant

Return $vNull

End

0 comments on commit f66ae4a

Please sign in to comment.