C# 解析省份、城市、区域 json文件
一、json文件内容如下,(小程序里好像有用到...):

二、读取包含省份城市区域的json文件,并整理成想要的结果:
string path = Server.MapPath("/js");
string file = System.IO.Path.Combine(path, "数据.json");
string message = "";
string fielval = readfile(file, ref message);
if(message=="")
{
fielval = fielval.Replace("\n", "").Replace("\t", "").Replace(" ", "");
JObject json=JObject.Parse(fielval);
string data = json["data"].ToString();
string namesel = "福建省";
Dictionary<string, List<string>> res = new Dictionary<string, List<string>>();
bool isget = getChild(namesel,"福州市", data,1, ref res);//下面有调用说明
message = "";
}
三、循环整理数据,计算出想要的结果:
/// <summary>
/// 循环整理数据
/// </summary>
/// <param name="sfname">省份</param>
/// <param name="cityname">城市</param>
/// <param name="children">json值</param>
/// <param name="ift">第几次循环</param>
/// <param name="res">返回</param>
/// <returns></returns>
private bool getChild(string sfname,string cityname, string children,int ift,ref Dictionary<string, List<string>> res)
{
try
{
List<Dictionary<string, object>> list = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(children);
if(ift==1 && !string.IsNullOrEmpty(sfname))
{
//saix 省份
var reslst = from u in list where u["name"].ToString() == "" + sfname + "" select u;
list = reslst.ToList();
}
if(ift==2 && !string.IsNullOrEmpty(cityname))
{
//赛选城市
var reslst = from u in list where u["name"].ToString() == "" + cityname + "" select u;
list = reslst.ToList();
}
if (list.Count > 0)
{
ift++;
List<string> dic_child = new List<string>();
for (int i = 0; i < list.Count; i++)
{
bool getcl = false;
string name = list[i]["name"].ToString().Trim();
if (list[i]["children"]!=null)
{
children = list[i]["children"].ToString().Trim();
if (children.Trim().ToLower() != "null" && children.Trim().ToLower() != "")
{
getcl = true;
getChild(name, cityname, children, ift, ref res);
}
}
else { children = ""; }
if(!getcl)
{
dic_child.Add(name);//, children
}
}
if(ift==1 || !string.IsNullOrEmpty(sfname))
{
res.Add(sfname, dic_child);
}
else
{
res.Add(cityname, dic_child);
}
}
return true;
}
catch (Exception ex)
{
return false;
}
}
四、getChild(string sfname,string cityname, string children,int ift,ref Dictionary<string, List<string>> res),调用说明
bool isget = getChild("福建省","福州市", data,1, ref res);//
当sfname、cityname都有传值,相当于查询cityname下的区域信息,结果如下:

bool isget = getChild("福建省","", data,1, ref res);//
当只有sfname都有传值,而cityname为空,相当于查询sfname下所有城市及各城市下所有区域信息,结果如下:

五、readfile 方法:
public string readfile(string filename, ref string message)
{
string fielval = "";
try
{
if (System.IO.File.Exists(filename))
{
using (StreamReader sreader = new StreamReader(filename, Encoding.UTF8))
{
fielval = sreader.ReadToEnd();
sreader.Close();
sreader.Dispose();
}
}
else
{
message = "未找到文件" + filename;
}
}
catch (Exception ex)
{
message = ex.Message;
}
return fielval;
}
相关文章:
C# 解析省份、城市、区域 json文件
一、json文件内容如下,(小程序里好像有用到...): 二、读取包含省份城市区域的json文件,并整理成想要的结果: string path Server.MapPath("/js"); string file System.IO.Path.Combine(path, "数据.…...
用C语言写的一个扫雷小游戏
头文件 调用头文件和声明函数 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <time.h> #include <stdlib.h>#define ROW 9 #define COL 9#define ROWS ROW2 #define COLS COL2#define EASY_CONT 10//声明函数 //初始化棋盘函数 void InitB…...
C++——类和对象(初始化列表和运算符重载与静态与友元)
文章目录 初始化列表语法结构定义和使用案例初始化列表初始化常量成员: 注意事项 运算符重载加法运算符重载语法结构示例注意事项 减法运算符重载语法结构示例注意事项 等于运算符重载等于运算符 的重载语法示例注意事项 大于运算符重载大于运算符 > 的重载语法…...
【WPF】图片剪裁-ImageCropping
【WPF】图片剪裁-ImageCropping 背景技术栈实现思路核心代码界面布局Style处理逻辑使用技巧预览下载背景 机缘巧合吧,当时在全网寻找图像剪裁工具,但大都不能满足需求,于是决定动手写。当然如果只是为了完成这么一个功能就没有必要记录了,主要是不依赖与第三方图像库,且实…...
C++的模板(十二):forward模板
标准库的std::forward模板有一个类型T参数。在实际使用时,T取什么值应该不存在疑惑: class A { public:A() {}A(int n):n(n) {}template <class T> A(T &&a);void print(A &&a) { printf("A&&\n"); }void pri…...
docker desktop历史版本安装
1.安装choco Windows安装 choco包管理工具-CSDN博客 2.通过choco安装 下面例子为安装旧版2.3.0.2,其它版本类似 Chocolatey Software | Docker Desktop 2.3.0.2 https://download.docker.com/win/stable/45183/Docker%20Desktop%20Installer.exe choco install docker-des…...
Ubuntu系统成功安装Docker教程
服务器版本: Ubuntu 22.04.3 LTS 1. 卸载旧版本 Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,需要卸载: sudo apt-get remove docker docker-engine docker.io containerd runc2. 更新 apt 软件包 …...
C++ 匹配并提取包括加中括号的日期时间的正则表达式
在C中,你可以使用std::regex库来匹配包含日期和时间的字符串。以下是一个简单的例子,它展示了如何使用正则表达式来匹配形如[YYYY-MM-DD HH:MM:SS]的字符串。include <iostream> #include <string> #include <regex> int main() { …...
一文-深入了解Ansible常见模块、安装和部署
1 Ansible 介绍 Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于python 开发的(集合了众多运维工具 puppet、cfengine、chef、func、fabric的优点)自动化运维工具, 其功能实现基于ss…...
etcd的备份与恢复
一 为什么使用etcd 与ZooKeeper相比,etcd更简单,安装、部署和使用更加容易,并且etcd的某些功能是ZooKeeper所没有的。因此,在很多场景下,etcd 比ZooKeeper更受用户的青,具体表现在如下几个方面: 1 etcd更…...
从 Pandas 到 Polars 十八:数据科学 2025,对未来几年内数据科学领域发展的预测或展望
我在2021年底开始使用Polars和DuckDB。我立刻意识到这些库很快就会成为数据科学生态系统的核心。自那时起,这些库的受欢迎程度呈指数级增长。 在这篇文章中,我做出了一些关于未来几年数据科学领域的发展方向和原因的预测。 这篇文章旨在检验我的预测能力…...
【postgresql】pg_dump备份数据库
pg_dump 介绍 pg_dump 是一个用于备份 PostgreSQL 数据库的实用工具。它可以将数据库的内容导出为一个 SQL 脚本文件或其他格式的文件,以便在需要时进行恢复或迁移。 基本用法 pg_dump [选项] [数据库名] 命令选项 -h 或 --host:指定数据库服务器的主…...
服务器的80和443端口关闭也能申请SSL证书
一、简介 在服务器的80和443端口关闭的情况下,确实可以申请SSL证书,但申请过程和方法会根据证书类型和验证方式的不同而有所差异。 通常如果是网站域名申请SSL证书,哪怕服务器的80、443端口都打不开,也可以通过DNS解析的方式来验…...
Odoo17应用、模型、字段
新建最简应用 先启用开发人员模式。 新建一个没有菜单项的空壳应用(模块/插件): 必须至少包含 2 个文件: __manifest__.py 文件和文件 __init__.py 。 该 __init__.py 文件目前可以保持为空,我们将在下一章中返回。另一方面,该…...
Airtest的控制手机滑动位置偏差修正方法总结
提起Airtest的控制手机滑动位置,就会想起swipe,因为这种方法比较常见,对于没有精度控制的朋友完全够用, 我现在遇到精度控制时,大家都觉得精度不够,现在我对滑动精度控制,找到比较好的方法&…...
【机器学习】Grid Search: 一种系统性的超参数优化方法
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 Grid Search: 一种系统性的超参数优化方法引言什么是Grid Search?Gr…...
Laravel Passport:API认证的瑞士军刀
Laravel Passport:API认证的瑞士军刀 在现代Web应用中,API的安全认证是一个核心问题。Laravel Passport提供了一个全面的解决方案,用于构建OAuth2.0认证服务器。它使得API的认证变得简单而强大,支持多种认证方式,包括…...
SpringBoot Bean管理
我们知道可以通过Spring当中提供的注解Component以及它的三个衍生注解(Controller、Service、Repository)来声明IOC容器中的bean对象,同时我们也学习了如何为应用程序注入运行时所需要依赖的bean对象,也就是依赖注入DI。 本篇主要…...
Qt5.12.2安装教程
文章目录 文章介绍下载连接安装教程 文章介绍 安装Qt5.12.2 下载连接 点击官网下载 安装包下载完毕 安装教程 点开设置,添加临时储存库,复制连接“https://download.qt.io/online/qtsdkrepository/windows_x86/root/qt/” 点击测试࿰…...
2024年大数据高频面试题(中篇)
文章目录 Kafka为什么要用消息队列为什么选择了kafkakafka的组件与作用(架构)kafka为什么要分区Kafka生产者分区策略kafka的数据可靠性怎么保证ack应答机制(可问:造成数据重复和丢失的相关问题)副本数据同步策略ISRkafka的副本机制kafka的消费分区分配策略Range分区分配策略…...
【PHP】编写php扩展
【PHP】编写php扩展 第一步 下载PHP的源代码,如php-5.4.16。解压后进入php-5.4.16/ext目录。输入 ./ext/_skel –extnamemyext,myext就是扩展的名称,执行后生成myext目录。 ext/_skel是PHP官方提供的用于生成php扩展骨架代码的工具。 cd myex…...
高校vs中小学气象站:核心区别
绝大多数普通校园气象站仅适合中小学可视化科普展示,数据精度低、无原始数据导出、无开放接口、参数单一,完全无法满足高校教学科研需求。中小学设备:侧重外观展示、简单数据观看、趣味科普,精度普通、数据封闭、无科研溯源能力&a…...
如何快速掌握京东自动评价工具:面向新手的完整指南
如何快速掌握京东自动评价工具:面向新手的完整指南 【免费下载链接】jd_AutoComment 自动评价,仅供交流学习之用 项目地址: https://gitcode.com/gh_mirrors/jd/jd_AutoComment 在快节奏的电商购物时代,你是否也曾为堆积如山的待评价订单而烦恼&a…...
为什么Windows用户需要APK安装器?三大场景解决你的跨平台痛点
为什么Windows用户需要APK安装器?三大场景解决你的跨平台痛点 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经遇到过这样的困境:在电…...
3个真实问题告诉你:DdddOcr如何成为你的免费离线验证码识别助手
3个真实问题告诉你:DdddOcr如何成为你的免费离线验证码识别助手 【免费下载链接】ddddocr 带带弟弟 通用验证码识别OCR pypi版 项目地址: https://gitcode.com/gh_mirrors/dd/ddddocr 当你在自动化测试、数据采集或系统集成中遇到验证码时,是否曾…...
Windows驱动存储管理终极指南:DriverStore Explorer技术深度解析
Windows驱动存储管理终极指南:DriverStore Explorer技术深度解析 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer DriverStore Explorer(简称RAPR)是一…...
零命令行部署飞书AI机器人:桌面应用实现开箱即用
1. 项目概述:一个为普通人设计的飞书AI机器人桌面应用 如果你在飞书里用过官方提供的“AI助手”,可能会觉得它功能不错,但总有些限制——不能自由选择模型,无法深度定制,更别提把它无缝集成到你的工作流里了。于是&am…...
抖音批量下载终极指南:3步实现无水印高清视频免费下载
抖音批量下载终极指南:3步实现无水印高清视频免费下载 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppo…...
NBTExplorer深度指南:掌握Minecraft数据编辑的完整解决方案
NBTExplorer深度指南:掌握Minecraft数据编辑的完整解决方案 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer NBTExplorer是一款专为Minecraft游戏数据设…...
Switch大气层系统完整教程:从零开始打造稳定自制系统环境
Switch大气层系统完整教程:从零开始打造稳定自制系统环境 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 大气层系统(Atmosphere)是任天堂Switch平台上最…...
