.NET Framework 4.5.2
Install-Package HALJSonDeserializer -Version
dotnet add package HALJSonDeserializer --version
<PackageReference Include="HALJSonDeserializer" Version="" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add HALJSonDeserializer --version
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: HALJSonDeserializer,"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install HALJSonDeserializer as a Cake Addin
#addin nuget:?package=HALJSonDeserializer&version=

// Install HALJSonDeserializer as a Cake Tool
#tool nuget:?package=HALJSonDeserializer&version=
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

This package can deserialize any String, Stream, or StreamReader (On HAL+JSON format or not) provided by a web api response.  
On the package console run :
Install-Package HALJSonDeserializer
After installation you must include the namespace of the package where you will use it:
using haljson;
So now: suppose that you want to call a web api via "http://localhost:8080/customer" in your c# code and to parse it into your custom type called "Customer". This can be done simply as follows:
Customer theCustomer =  HALJSonDeserializer.GetAndParse<Customer>("http://localhost:8080/customer");
For async call you can do this:
Customer theCustomer = await HALJSonDeserializer.GetAndParseAsync<Customer>("http://localhost:8080/customer");
If you have to retrieve a specific customer with FirstName and LastName as Arguments:
GetCustomerRequestArg arg = new GetCustomerRequestArg{FirstName="Bart",LastName="Hansen"};
Customer theCustomer = await HALJSonDeserializer .GetAndParseAsync<GetCustomerRequestArg, Customer>("http://localhost:8080/customer", arg);
What about the post request?
To post a request with parametters and receive a response you can do so:
Create a Class For your request arguments here "GetFullNameRequest" and an other Class for the response here "GetFullNameResponse".
GetFullNameRequest arg = new GetFullNameRequest{FirstName="Bart",LastName="Hansen"};
GetFullNameResponse fulName = await HALJSonDeserializer.PostAndParseResponseAsync<GetFullNameRequest,GetFullNameResponse>("http://localhost:8080/GetFullName",arg);

If you just want to deserialize a Stream, a StreamReader or a string, there are three extension methods for them. You can do that as follows:
Customer  theCustomer = myStream.ToObject<Customer>();  //For a Stream
Customer  theCustomer = myStreamReader.ToObject<Customer>();  //For a StreamReader
Customer  theCustomer = myString.ToObject<Customer>(); //For a string

Product Versions
.NET Framework net452 net46 net461 net462 net463 net47 net471 net472 net48
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated 1,958 3/18/2016 1,065 3/17/2016 972 3/17/2016
1.1.5 979 3/17/2016
1.1.4 782 3/17/2016
1.1.3 1,062 3/17/2016
1.1.2 1,350 3/16/2016
1.1.1 764 3/16/2016
1.1.0 761 3/16/2016
1.0.21 1,168 3/16/2016
1.0.3 788 3/16/2016
1.0.2 1,019 3/16/2016
1.0.1 986 3/16/2016