Skip to content

Commit e323b64

Browse files
committed
fix: 调整JSON动态访问器未定义字段行为及完善测试
1 parent 2e0c11e commit e323b64

4 files changed

Lines changed: 16 additions & 8 deletions

File tree

.github/workflows/PublishNugetPackage.yml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
name: Publish Nuget Package
22

33
on:
4-
release:
5-
types: [released,prereleased]
6-
branches: [ main ]
4+
push:
5+
tags:
6+
- v*.*.**
7+
# release:
8+
# types: [ released, prereleased ]
9+
# branches: [ main ]
710

811
jobs:
912
publish-with-build:
@@ -14,9 +17,9 @@ jobs:
1417
id-token: write
1518

1619
steps:
17-
- uses: actions/checkout@v4
20+
- uses: actions/checkout@v6
1821
- name: Setup .NET Core SDK
19-
uses: actions/setup-dotnet@v4
22+
uses: actions/setup-dotnet@v5
2023
with:
2124
dotnet-version: |
2225
8.x

src/Cuture.Extensions.SystemTextJson.Dynamic/Cuture.Extensions.SystemTextJson.Dynamic.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939

4040
<Authors>Stratos</Authors>
4141

42-
<Version>1.1.4</Version>
42+
<Version>1.1.5</Version>
4343

4444
<PackageLicenseExpression>MIT</PackageLicenseExpression>
4545
<PackageProjectUrl>https://github.com/cuture/Cuture.Extensions.SystemTextJson.Dynamic</PackageProjectUrl>

src/Cuture.Extensions.SystemTextJson.Dynamic/JsonObjectDynamicAccessor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ private bool TryGetMember(string propertyName, out object? result)
100100
result = JsonNodeUtil.GetNodeAccessValue(jsonNode);
101101
return true;
102102
}
103-
result = null;
104-
return false;
103+
result = JSON.Undefined;
104+
return true;
105105
}
106106

107107
#endregion Private 方法

test/Cuture.Extensions.SystemTextJson.Dynamic.Test/JSONFieldAccessTest.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ public void ShouldReturnUndefinedForErrorField()
1515
Assert.IsTrue(json.notexistfield == null);
1616
Assert.IsTrue(json.notexistfield == JSON.Undefined);
1717
Assert.IsTrue(JSON.isUndefined(json.notexistfield));
18+
19+
var propertyName = "notexistfield";
20+
Assert.IsTrue(json[propertyName] == null);
21+
Assert.IsTrue(json[propertyName] == JSON.Undefined);
22+
Assert.IsTrue(JSON.isUndefined(json[propertyName]));
1823
}
1924

2025
#endregion Public 方法

0 commit comments

Comments
 (0)