C# 数组转json
////////试题信息/////////////////
// 已知
// h、d两个数组分别表示表头和内容
// 要求
// 编写函数一:rs2Array
// 返回一个数组,每一项为一个对象。
// 编写函数二:rs2MultiHash
// 返回一个对象,内容是键值对。
////////////////////////////////
using System;
using System.Collections.Generic; public class test_02_quiz
{
static void Main(string[] args)
{
List<String> tmp, h = new List<String>();
h.Add("id"); h.Add("name"); h.Add("region");
List<List<String>> d = new List<List<String>>();
tmp = new List<String>();
tmp.Add(""); tmp.Add("wang"); tmp.Add("shanghai");
d.Add(tmp);
tmp = new List<String>();
tmp.Add(""); tmp.Add("huang"); tmp.Add("beijing");
d.Add(tmp);
tmp = new List<String>();
tmp.Add(""); tmp.Add("zhang"); tmp.Add("beijing");
d.Add(tmp);
tmp = new List<String>();
tmp.Add(""); tmp.Add("wang"); tmp.Add("shanghai");
d.Add(tmp); String str1 = rs2Array(h, d);
Console.WriteLine(str1); String str2 = rs2MultiHash(h, d, h[]);
Console.WriteLine(str2);
} /* rs2Array(h, d) 期望结果为:
[
{id: "100", name: "wang", region: "shanghai"},
{id: "101", name: "huang", region: "beijing"},
{id: "102", name: "zhang", region: "beijing"},
{id: "103", name: "li", region: "shanghai"}
]
*/
private static String rs2Array(List<String> h, List<List<String>> d)
{
//return "not implemented";
// 注释上面一句,并请在此实现函数: } /* rs2MultiHash(h, d, h[0]) 期望结果为:
{
"100": [{id: "100", name: "wang", region: "shanghai"}],
"101": [{id: "101", name: "huang", region: "beijing"}],
"102": [{id: "102", name: "zhang", region: "beijing"}],
"103": [{id: "103", name: "li", region: "shanghai"}]
}
*/
/* rs2MultiHash(h, d, h[2]) 期望结果为:
{
"shanghai": [
{id: "100", name: "wang", region: "shanghai"},
{id: "103", name: "li", region: "shanghai"}
],
"beijing": [
{id: "101", name: "huang", region: "beijing"},
{id: "102", name: "zhang", region: "beijing"}
]
}
*/
private static String rs2MultiHash(List<String> h, List<List<String>> d, String key)
{
//return "not implemented";
// 注释上面一句,并请在此实现函数: } // 如果有公共函数需要提取,请在此编写: }
方法代码:
private static String rs2Array(List<String> h, List<List<String>> d)
{
return JsonConvert.SerializeObject(d.Select(x => middleConvert(h, x)));
} private static String rs2MultiHash(List<String> h, List<List<String>> d, String key)
{
return JsonConvert.SerializeObject(d.Select(x => middleConvert(h, x))
.GroupBy(x => x[key])
.ToDictionary(x => x.Key, x => x.ToArray()));
} private static Dictionary<string, string> middleConvert(List<string> h, List<string> d)
{
return h.ToDictionary(x => x, x => d[h.IndexOf(x)]);
}
C# 数组转json的更多相关文章
- iOS 字典或者数组和JSON串的转换
在和服务器交互过程中,会iOS 字典或者数组和JSON串的转换,具体互换如下: // 将字典或者数组转化为JSON串 + (NSData *)toJSONData:(id)theData { NSEr ...
- 使用FastJSON,将对象或数组和JSON串互转
Fastjson,是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库.其开源的下载网址为:https://github.com/AlibabaTech/fastjson. 示例代码如下: ...
- javascript里面的数组,json对象,动态添加,修改,删除示例
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- JSon_零基础_002_将List类型数组转换为JSon格式的对象字符串,返回给界面
将List类型数组转换为JSon格式的对象字符串,返回给界面 所需要导入的包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * ...
- JSon_零基础_001_将布尔类型数组转换为JSon格式字符串,返回给界面
将布尔类型数组转换为JSon格式字符串,返回给界面 需要导入包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * 下一步com ...
- JQ将数组转换为Json
var ArrComList; try { //接口传进来的数据格式为 A,B,C,D,这里根据逗号分隔返回数组. ArrComList = WeighControl.GetComList().spl ...
- 数据(数组,json)的处理
有些时候我们在做联动事件以及获取动态的数据是,给到我们的都是数组,json格式的数据. 为了方便快速的处理这些数据,jq给我们提供了很多简便的方法. each()方法 在jQuery里有一个each方 ...
- php:数组与json数据相互转换
1.数组转json $json=json_encode(数组名) 数组转json字符串 2,json转数组 $arr=json_decode(json字符串,[true]) 不加true第一次转直接转 ...
- js数组,字符串,json互相转换函数有哪些
js数组,字符串,json互相转换函数有哪些 一.总结 一句话总结: JSON.stringify(arr) JSON.parse(jsonString) str.split('') array.jo ...
- js 数组转json,json转数组
//数组转json串var arr = [1,2,3, { a : 1 } ];JSON.stringify( arr ); //json字符串转数组var jsonStr = '[1,2,3,{&q ...
随机推荐
- 关于Segmentation fault (core dumped)
有的程序可以通过编译,但在运行时会出现Segment fault(段错误).这通常都是指针错误引起的.但这不像编译错误一样会提示到文件一行,而是没有任何信息.一种办法是用gdb的step, 一步一步寻 ...
- I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
问题: 安装TensorFlow(CPU版本),使用pip install tensorflow安装,安装一切顺利,但是在跑一个简单的程序时,遇到如下情况: 大概意思是:你的CPU支持AVX扩展,但是 ...
- 《es6标准入门》chapter11中关于Proxy的一个错误例子的纠正
在原书第二版的p120,这里有一个使用Proxy实现管道化调用的例子,想法很好,但是代码有问题,下面是更正之后的代码. 由于我是在node环境下运行,所以我把几个全局函数定义到global内了,如果是 ...
- JavaScript – Convert Image to Base64 String
From: https://bytenota.com/javascript-convert-image-to-base64-string/ his post shows you two approac ...
- grid - 网格线命名
通过grid-template-rows和grid-template-columns定义网格时,网格线可以被命名.网格线名称也可以设置网格项目位置. grid-template-rows和grid-t ...
- Mysql线程池系列一:什么是线程池和连接池( thread_pool 和 connection_pool)
thread_pool 和 connection_pool 当客户端请求的数据量比较大的时候,使用线程池可以节约大量的系统资源,使得更多的CPU时间和内存可以高效地利用起来.而数据库连接池的使用 ...
- 基于mindwave脑电波进行疲劳检测算法的设计(1)
一.简介 脑波,又称之为脑电波,是人大脑发出的电波,非常的微弱,只能通过设备来检测.人的脑波在不同状态下,会不同,因此可以通过脑波来量化分析人的精神状态. 科学家讲脑电波分为四种,以下为详细解释 (1 ...
- numpy数组(5)-二维数组的轴
numpy的mean(),std()等方法是作用于整个numpy数组的,如果是二维数组的话,也是整个数组,包括所有行和列,但我们经常需要它仅作用于行或者列,而不是整个二维数组,这个时候,可以定义轴ax ...
- ECMAScript 6 入门之Proxy代理和set
1.Proxy代理 1. var user={ full_name:function () { return this.fname+" "+this.lname; } }; use ...
- linux每日命令(3):ln命令
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在 ...