Skip to content

Commit 7af9f32

Browse files
authored
Use System.Text.Json (xamarin#711)
1 parent 774d898 commit 7af9f32

File tree

5 files changed

+17
-11
lines changed

5 files changed

+17
-11
lines changed

WebServices/TodoREST/Droid/TodoREST.Android.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@
5858
<Version>1.6.1</Version>
5959
</PackageReference>
6060
<PackageReference Include="Xamarin.Forms" Version="5.0.0.1874" />
61+
<PackageReference Include="System.Text.Json">
62+
<Version>5.0.1</Version>
63+
</PackageReference>
6164
</ItemGroup>
6265
<ItemGroup>
6366
<Reference Include="System" />

WebServices/TodoREST/TodoREST/Data/RestService.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,25 @@
44
using System.Net.Http;
55
using System.Text;
66
using System.Threading.Tasks;
7-
using Newtonsoft.Json;
8-
using Xamarin.Forms;
7+
using System.Text.Json;
98

109
namespace TodoREST
1110
{
1211
public class RestService : IRestService
1312
{
1413
HttpClient client;
14+
JsonSerializerOptions serializerOptions;
1515

1616
public List<TodoItem> Items { get; private set; }
1717

1818
public RestService()
1919
{
2020
client = new HttpClient();
21+
serializerOptions = new JsonSerializerOptions
22+
{
23+
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
24+
WriteIndented = true
25+
};
2126
}
2227

2328
public async Task<List<TodoItem>> RefreshDataAsync()
@@ -31,7 +36,7 @@ public async Task<List<TodoItem>> RefreshDataAsync()
3136
if (response.IsSuccessStatusCode)
3237
{
3338
string content = await response.Content.ReadAsStringAsync();
34-
Items = JsonConvert.DeserializeObject<List<TodoItem>>(content);
39+
Items = JsonSerializer.Deserialize<List<TodoItem>>(content, serializerOptions);
3540
}
3641
}
3742
catch (Exception ex)
@@ -48,7 +53,7 @@ public async Task SaveTodoItemAsync(TodoItem item, bool isNewItem = false)
4853

4954
try
5055
{
51-
string json = JsonConvert.SerializeObject(item);
56+
string json = JsonSerializer.Serialize<TodoItem>(item, serializerOptions);
5257
StringContent content = new StringContent(json, Encoding.UTF8, "application/json");
5358

5459
HttpResponseMessage response = null;

WebServices/TodoREST/TodoREST/Models/TodoItem.cs

100755100644
Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
1-
using System;
2-
3-
namespace TodoREST
1+
namespace TodoREST
42
{
53
public class TodoItem
64
{
75
public string ID { get; set; }
8-
96
public string Name { get; set; }
10-
117
public string Notes { get; set; }
12-
138
public bool Done { get; set; }
149
}
1510
}

WebServices/TodoREST/TodoREST/TodoREST.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
1312
<PackageReference Include="Xamarin.Essentials" Version="1.6.1" />
1413
<PackageReference Include="Xamarin.Forms" Version="5.0.0.1874" />
14+
<PackageReference Include="System.Text.Json" Version="5.0.1" />
1515
</ItemGroup>
1616

1717
<ItemGroup>

WebServices/TodoREST/iOS/TodoREST.iOS.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@
7676
<Version>1.6.1</Version>
7777
</PackageReference>
7878
<PackageReference Include="Xamarin.Forms" Version="5.0.0.1874" />
79+
<PackageReference Include="System.Text.Json">
80+
<Version>5.0.1</Version>
81+
</PackageReference>
7982
</ItemGroup>
8083
<ItemGroup>
8184
<Reference Include="System" />

0 commit comments

Comments
 (0)