dotnet add package HALJSonDeserializer --version
NuGet\Install-Package HALJSonDeserializer -Version
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<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
#r "nuget: HALJSonDeserializer,"
#r directive can be used in F# Interactive and Polyglot Notebooks. 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=

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 Compatible and additional computed target framework versions.
.NET Framework net452 is compatible.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
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 2,355 3/18/2016 1,350 3/17/2016 1,278 3/17/2016
1.1.5 1,272 3/17/2016
1.1.4 1,028 3/17/2016
1.1.3 1,358 3/17/2016
1.1.2 1,700 3/16/2016
1.1.1 1,026 3/16/2016
1.1.0 1,022 3/16/2016
1.0.21 1,487 3/16/2016
1.0.3 1,040 3/16/2016
1.0.2 1,286 3/16/2016
1.0.1 1,237 3/16/2016