# Newtonsoft.Json

**Kind:** Service

**Source:** `Pams/Logic/Pams.CurrencyConverter/Pams.CurrencyConverter.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

Newtonsoft.Json is a NuGet package dependency in the Pams.CurrencyConverter project for serializing and deserializing JSON data. It supports converting currency-converter request and response models between .NET objects and JSON payloads used by external callers.

## Diagram

```mermaid
sequenceDiagram
    participant Client
    participant CurrencyConverter
    participant NewtonsoftJson as Newtonsoft.Json

    Client->>CurrencyConverter: Send JSON conversion request
    CurrencyConverter->>NewtonsoftJson: Deserialize request payload
    NewtonsoftJson-->>CurrencyConverter: Return request model
    CurrencyConverter->>NewtonsoftJson: Serialize conversion response
    NewtonsoftJson-->>CurrencyConverter: Return JSON response
    CurrencyConverter-->>Client: Return JSON response
```

## Usage

```ts
const response = await fetch("/api/currency-converter/convert", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    fromCurrency: "USD",
    toCurrency: "EUR",
    amount: 100,
  }),
});

const conversion = await response.json();

console.log(conversion);
```

## AI Coding Instructions

- Keep JSON request and response models compatible with the payloads expected by currency-converter callers.
- Use Newtonsoft.Json attributes when JSON property names differ from .NET property names.
- Check serialization settings before changing null handling, date formatting, or naming behavior.
- Avoid mixing Newtonsoft.Json and System.Text.Json attributes on the same model without confirming the active serializer.
- Update package references through the project file and verify dependent services after package changes.
