Files
serein-flow/Serein.Extend.NewtonsoftJson/NewtonsoftJsonTokenFactory.cs

31 lines
796 B
C#
Raw Normal View History

using Newtonsoft.Json.Linq;
using Serein.Library.Api;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Serein.Extend.NewtonsoftJson
{
public static class NewtonsoftJsonTokenFactory
{
public static IJsonToken Parse(string json)
{
var jt = JToken.Parse(json);
return FromJToken(jt);
}
public static IJsonToken FromJToken(JToken token)
{
return token.Type switch
{
JTokenType.Object => new NewtonsoftJsonObjectToken((JObject)token),
JTokenType.Array => new NewtonsoftJsonArrayToken((JArray)token),
_ => new NewtonsoftJsonValueToken(token)
};
}
}
}