在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → JMESPath.Net 完整实现教程:适用于 .Net Core 的 JSON 查询语言

JMESPath.Net 完整实现教程:适用于 .Net Core 的 JSON 查询语言

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:1.15M
  • 下载次数:0
  • 浏览次数:8
  • 发布时间:2024-04-16
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】
JMESPath.Net 是一个为 .Net Core 设计的完全兼容 JMESPath 规范的实现。
开始使用
使用解析器
JMESPath.Net 利用 Newtonsoft.Json 处理 JSON,并提供了一个简单易用的解析器:
using DevLab.JmesPath;

const string input = @"{ \"foo\": \"bar\" }";
const string expression = "foo";

var jmes = new JmesPath();
var result = jmes.Transform(input, expression);
在上面的示例中,结果是一个 JSON 字符串令牌,包括引号。
利用 AST
前面的示例返回了单个函数调用中 JMESPath 评估的结果。然而,JMESPath.Net 解析器创建了一个以 JmesPathExpression 对象为根的抽象语法树,用于对 JSON 文档评估 JMESPath 表达式。如果你想在执行评估之前检索 AST,请使用以下代码:
var jp = new JmesPath();
var ast = jp.Parse(expression);
这里展示了 JmesPathExpression 对象的继承层次结构以及简单表达式和复合表达式的处理方式。通过这些示例,您可以深入了解如何在 .Net Core 应用程序中有效地利用 JMESPath.Net 来查询和处理 JSON 数据。
【实例截图】
【核心代码】
文件清单
└── JmesPath.Net-e59be9c0c0dfeea84f1bb65ddc1f776f063056c5
    ├── appveyor.yml
    ├── assets
    │   ├── BaseGrammar2.PNG
    │   ├── BaseGrammarMod.PNG
    │   ├── BaseGrammar.PNG
    │   ├── CaseElementList.PNG
    │   ├── CaseLookaheadScan2.PNG
    │   ├── look-ahead-1.md
    │   ├── look-ahead-2.md
    │   ├── SaveState2.PNG
    │   ├── SaveState.PNG
    │   ├── ScannerInfrastructure2.PNG
    │   └── ScannerProlog.PNG
    ├── bin
    │   ├── EncryptDecryptFile.PS1
    │   ├── gplex.pdf
    │   ├── gppg.pdf
    │   └── Update-Version.ps1
    ├── _config.yml
    ├── global.json
    ├── jmespath.net.sln
    ├── LICENSE
    ├── README.md
    ├── src
    │   ├── jmespath.net
    │   │   ├── Expressions
    │   │   │   ├── JmesParenExpression.cs
    │   │   │   ├── JmesPathAdditionExpression.cs
    │   │   │   ├── JmesPathAndExpression.cs
    │   │   │   ├── JmesPathArgument.cs
    │   │   │   ├── JmesPathArithmeticExpression.cs
    │   │   │   ├── JmesPathBinding.cs
    │   │   │   ├── JmesPathComparison.cs
    │   │   │   ├── JmesPathCompoundExpression.cs
    │   │   │   ├── JmesPathCurrentNodeExpression.cs
    │   │   │   ├── JmesPathDivisionExpression.cs
    │   │   │   ├── JmesPathEqualOperator.cs
    │   │   │   ├── JmesPathExpression.cs
    │   │   │   ├── JmesPathFilterProjection.cs
    │   │   │   ├── JmesPathFlattenProjection.cs
    │   │   │   ├── JmesPathFunctionExpression.cs
    │   │   │   ├── JmesPathGreaterThanOperator.cs
    │   │   │   ├── JmesPathGreaterThanOrEqualOperator.cs
    │   │   │   ├── JmesPathHashWildcardProjection.cs
    │   │   │   ├── JmesPathIdentifier.cs
    │   │   │   ├── JmesPathIndex.cs
    │   │   │   ├── JmesPathIndexExpression.cs
    │   │   │   ├── JmesPathIntegerDivisionExpression.cs
    │   │   │   ├── JmesPathLessThanOperator.cs
    │   │   │   ├── JmesPathLessThanOrEqualOperator.cs
    │   │   │   ├── JmesPathLetExpression.cs
    │   │   │   ├── JmesPathListWildcardProjection.cs
    │   │   │   ├── JmesPathLiteral.cs
    │   │   │   ├── JmesPathModuloExpression.cs
    │   │   │   ├── JmesPathMultiplicationExpression.cs
    │   │   │   ├── JmesPathMultiSelectHash.cs
    │   │   │   ├── JmesPathMultiSelectList.cs
    │   │   │   ├── JmesPathNotEqualOperator.cs
    │   │   │   ├── JmesPathNotExpression.cs
    │   │   │   ├── JmesPathOrderingComparison.cs
    │   │   │   ├── JmesPathOrExpression.cs
    │   │   │   ├── JmesPathPipeExpression.cs
    │   │   │   ├── JmesPathProjection.cs
    │   │   │   ├── JmesPathRawString.cs
    │   │   │   ├── JmesPathRootExpression.cs
    │   │   │   ├── JmesPathRootNodeExpression.cs
    │   │   │   ├── JmesPathSimpleExpression.cs
    │   │   │   ├── JmesPathSliceProjection.cs
    │   │   │   ├── JmesPathSubExpression.cs
    │   │   │   ├── JmesPathSubtractionExpression.cs
    │   │   │   └── JmesPathVariableReference.cs
    │   │   ├── Functions
    │   │   │   ├── AbsFunction.cs
    │   │   │   ├── AvgFunction.cs
    │   │   │   ├── ByFunction.cs
    │   │   │   ├── CeilFunction.cs
    │   │   │   ├── ContainsFunction.cs
    │   │   │   ├── EndsWithFunction.cs
    │   │   │   ├── FindFirstFunction.cs
    │   │   │   ├── FindLastFunction.cs
    │   │   │   ├── FloorFunction.cs
    │   │   │   ├── FromItemsFunction.cs
    │   │   │   ├── GroupByFunction.cs
    │   │   │   ├── Impl
    │   │   │   │   └── StringExtensions.cs
    │   │   │   ├── ItemsFunction.cs
    │   │   │   ├── JmesPathFunctionArgument.cs
    │   │   │   ├── JmesPathFunction.cs
    │   │   │   ├── JmesPathFunctionFactory.cs
    │   │   │   ├── JoinFunction.cs
    │   │   │   ├── KeysFunction.cs
    │   │   │   ├── LengthFunction.cs
    │   │   │   ├── LowerFunction.cs
    │   │   │   ├── MapFunction.cs
    │   │   │   ├── MathArrayFunction.cs
    │   │   │   ├── MaxByFunction.cs
    │   │   │   ├── MaxFunction.cs
    │   │   │   ├── MergeFunction.cs
    │   │   │   ├── MinByFunction.cs
    │   │   │   ├── MinFunction.cs
    │   │   │   ├── MinOrMaxFunction.cs
    │   │   │   ├── NotNullFunction.cs
    │   │   │   ├── PadLeftFunction.cs
    │   │   │   ├── PadRightFunction.cs
    │   │   │   ├── ReplaceFunction.cs
    │   │   │   ├── ReverseFunction.cs
    │   │   │   ├── SortByFunction.cs
    │   │   │   ├── SortFunction.cs
    │   │   │   ├── SplitFunction.cs
    │   │   │   ├── StartsEndsWithFunction.cs
    │   │   │   ├── StartsWithFunction.cs
    │   │   │   ├── SumFunction.cs
    │   │   │   ├── ToArrayFunction.cs
    │   │   │   ├── ToNumberFunction.cs
    │   │   │   ├── ToStringFunction.cs
    │   │   │   ├── TrimFunction.cs
    │   │   │   ├── TypeFunction.cs
    │   │   │   ├── UpperFunction.cs
    │   │   │   ├── ValuesFunction.cs
    │   │   │   └── ZipFunction.cs
    │   │   ├── InternalsVisibleTo.cs
    │   │   ├── Interop
    │   │   │   ├── IFunctionRepository.cs
    │   │   │   ├── IRegisterFunctions.cs
    │   │   │   ├── IScopeParticipant.cs
    │   │   │   └── IVisitor.cs
    │   │   ├── JmesPath.cs
    │   │   ├── JmesPathGenerator.cs
    │   │   ├── jmespath.net.csproj
    │   │   ├── Properties
    │   │   │   └── AssemblyInfo.cs
    │   │   ├── ScopeParticipant.cs
    │   │   └── Utils
    │   │       ├── CodePointEnumerator.cs
    │   │       ├── JArrayExtensions.cs
    │   │       ├── JTokenExtensions.cs
    │   │       ├── JTokens.cs
    │   │       ├── TextComparer.cs
    │   │       ├── Text.cs
    │   │       └── TextEnumerator.cs
    │   ├── jmespath.net.interop
    │   │   ├── IJmesPathGenerator.cs
    │   │   └── jmespath.net.interop.csproj
    │   ├── jmespath.net.parser
    │   │   ├── IJmesPathGenerator.cs
    │   │   ├── InternalsVisibleTo.cs
    │   │   ├── jmespath.net.parser.csproj
    │   │   ├── JmesPath.Net.Parser.nuspec
    │   │   ├── JmesPathParser.cs
    │   │   ├── JmesPathParser.y
    │   │   ├── JmesPathScanner.cs
    │   │   ├── JmesPathScannerExtensions.cs
    │   │   ├── JmesPathScanner.lex
    │   │   ├── JsonChecker.cs
    │   │   ├── Parser.cs
    │   │   ├── Token.cs
    │   │   ├── Tokens
    │   │   │   ├── LiteralStringToken.cs
    │   │   │   ├── NumberToken.cs
    │   │   │   ├── QuotedStringToken.cs
    │   │   │   └── RawStringToken.cs
    │   │   └── Utils
    │   │       ├── StringUtil.cs
    │   │       └── TypeInfoExtensions.cs
    │   ├── jmespath.net.snk
    │   └── jmespath.net.snk.crypted
    ├── tests
    │   └── jmespathnet.tests
    │       ├── Async
    │       │   ├── ArithmeticExpressionsAsyncBehaviorTests.cs
    │       │   ├── ComparisonAsyncBehaviorTests.cs
    │       │   ├── JmesPathExpressionAsyncBehaviorTests.cs
    │       │   ├── ListAsyncBehaviorTests.cs
    │       │   ├── LogicalOperatorsAsyncBehaviorTests.cs
    │       │   └── SampleFunctions
    │       │       └── AsyncAvgFunction.cs
    │       ├── Expressions
    │       │   ├── JmesPathAndExpressionTest.cs
    │       │   ├── JmesPathArithmeticExpressionTest.cs
    │       │   ├── JmesPathCurrentNodeExpressionTest.cs
    │       │   ├── JmesPathEqualOperatorTest.cs
    │       │   ├── JmesPathExpressionsTestBase.cs
    │       │   ├── JmesPathFlattenProjectionTest.cs
    │       │   ├── JmesPathGreaterThanOperatorTest.cs
    │       │   ├── JmesPathIdentifierTest.cs
    │       │   ├── JmesPathIndexExpressionTest.cs
    │       │   ├── JmesPathLiteralTest.cs
    │       │   ├── JmesPathMultiSelectHashTest.cs
    │       │   ├── JmesPathMultiSelectListTest.cs
    │       │   ├── JmesPathNotExpressionTest.cs
    │       │   ├── JmesPathOrExpressionTest.cs
    │       │   ├── JmesPathPipeExpressionTest.cs
    │       │   ├── JmesPathProjectionTest.cs
    │       │   ├── JmesPathRawStringTest.cs
    │       │   ├── JmesPathRootNodeExpressionTest.cs
    │       │   ├── JmesPathSliceExpressionTest.cs
    │       │   └── JmesPathSubExpressionTest.cs
    │       ├── Functions
    │       │   ├── ContainsFunctionTest.cs
    │       │   ├── JmesCurrentNodeTest.cs
    │       │   └── ToNumberFunctionTest.cs
    │       ├── jmespathnet.tests.csproj
    │       ├── jmespath.tests.xproj.user
    │       ├── Parser
    │       │   ├── AndExpressionTest.cs
    │       │   ├── CurrentNodeTest.cs
    │       │   ├── FilterTest.cs
    │       │   ├── FlattenTest.cs
    │       │   ├── FunctionTest.cs
    │       │   ├── HashWildcardTest.cs
    │       │   ├── IdentifierTest.cs
    │       │   ├── IndexTest.cs
    │       │   ├── ListWildcardTest.cs
    │       │   ├── LiteralTest.cs
    │       │   ├── MultiSelectHashTest.cs
    │       │   ├── MultiSelectListTest.cs
    │       │   ├── OrExpressionTest.cs
    │       │   ├── ParserTestBase.cs
    │       │   ├── PipeExpressionTest.cs
    │       │   ├── RawStringTest.cs
    │       │   ├── SliceExpressionTest.cs
    │       │   └── SubExpressionTest.cs
    │       ├── Properties
    │       │   └── AssemblyInfo.cs
    │       ├── RegexTest.cs
    │       └── Utils
    │           ├── StringFunctionsTest.cs
    │           ├── StringUtilTest.cs
    │           └── TextTest.cs
    └── tools
        ├── jmespathnet.compliance
        │   ├── AssemblyQualifiedNameParser.cs
        │   ├── CommandLine.cs
        │   ├── Compliance.cs
        │   ├── ComplianceReport.cs
        │   ├── ComplianceResult.cs
        │   ├── ComplianceSummary.cs
        │   ├── ConsoleEx.cs
        │   ├── jmespath.compliance.xproj.user
        │   ├── jmespathnet.compliance.csproj
        │   ├── jmespath.test
        │   ├── Options.cs
        │   ├── Program.cs
        │   ├── Properties
        │   │   ├── AssemblyInfo.cs
        │   │   └── launchSettings.json
        │   └── regression
        │       ├── flatten_operator.json
        │       ├── number_float.json
        │       ├── number_int64.json
        │       └── string_comparisons.json
        └── jpnet
            ├── jpnet.csproj
            └── Program.cs

30 directories, 225 files

标签:

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警