c# string返回值筛选

末日无痕 2019-05-13 03:59:51
我用的百度AI识别图片,返回值如下:
{
"log_id": 1398984202156276557,
"direction": 0,
"words_result_num": 2,
"words_result": [
{
"words": "小明是小狗",
"probability": {
"variance": 0.0,
"average": 0.999742,
"min": 0.998732
}
},
{
"words": "丽丽大帅哥",
"probability": {
"variance": 0.000435,
"average": 0.987731,
"min": 0.946409
}
}
],
"language": -1
}

我不想要这么多内容,只需要WORDS的内容(小明是小狗 丽丽大帅哥),请教大神应该怎么写
...全文
633 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bridge_go 2019-05-16
  • 打赏
  • 举报
回复
一个json序列化这么高分...
大鱼> 2019-05-16
  • 打赏
  • 举报
回复
突然发现还有那么高的送分题
空虚沸腾 2019-05-16
  • 打赏
  • 举报
回复
这个这么高的分,反序列化下应该不难的
  • 打赏
  • 举报
回复
JObject jd = (JObject)JsonConvert.DeserializeObject(req); JSON转成OBJ jd["distance"].ToString() 就可以取了 如果是数组 就循环下
牧歌ing 2019-05-15
  • 打赏
  • 举报
回复
应该有直接反序列化成对象的api吧,反序列化成对象直接操作 words属性好了
  • 打赏
  • 举报
回复
400分Json序列化你们这些人抢的真快
hztltgg 2019-05-14
  • 打赏
  • 举报
回复
这个不应该是定义一个返回结果的类,反序列化返回的数据,这样处理比较正常么? 怎么正则表达式都用上了
秋的红果实 2019-05-13
  • 打赏
  • 举报
回复
来个基本算法,winForm下

/// <summary>
/// 将key是word的值保存到resList并返回
/// </summary>
/// <param name="input"></param>
/// <param name="key"></param>
/// <returns></returns>
private List<string> getStr(string input,string key)
{
    List<string> resList = new List<string>();
    int len = key.Length;
    int start = 0;
    while(start<input.Length-len)
    {
        int index1;
        if((index1 = input.IndexOf(key,start))<=-1)
        {
            break;
        }

        int index2 = input.IndexOf(',', index1 + len);
        resList.Add(input.Substring(index1 + len, index2 - index1 - len));

        start = index2;

    }
    
    return resList;

}

//调用方法
string input= @"{
  log_id: 1398984202156276557,
  direction: 0,
  words_result_num: 2,
  words_result: [
    {
      words: 小明是小狗,
      probability: {
        variance: 0.0,
        average: 0.999742,
        min: 0.998732
      }
},
    {
      words: 丽丽大帅哥,
      probability: {
        variance: 0.000435,
        average: 0.987731,
        min: 0.946409
      }
    }
  ],
  language: -1
}";

            List<string> result = getStr(input, "words:");
            foreach(string s in result)
            {
                MessageBox.Show(s);

            }

正怒月神 2019-05-13
  • 打赏
  • 举报
回复
你可以使用JObject去筛选节点。
stherix 2019-05-13
  • 打赏
  • 举报
回复
百度api自带json.net nuget【Baidu.AI】 而且接口返回的就是JObject对象 所以你直接可以用 result["words_result"].Select(x => x["words"]).ToList(); 来获取所有的字符串 但是有时候可能识别失败或者图片不含有文字 所以可以先判断result["words_result_num"]的值
十八道胡同 2019-05-13
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string ss = @"{
  ""log_id"": 1398984202156276557,
  ""direction"": 0,
  ""words_result_num"": 2,
  ""words_result"": [
    {
      ""words"": ""小明是小狗"",
      ""probability"": {
        ""variance"": 0.0,
        ""average"": 0.999742,
        ""min"": 0.998732
      }
},
    {
      ""words"": ""丽丽大帅哥"",
      ""probability"": {
        ""variance"": 0.000435,
        ""average"": 0.987731,
        ""min"": 0.946409
      }
    }
  ],
  ""language"": -1
}";

            MatchCollection matches = Regex.Matches(ss, "words\": \"[^\"]+");

            foreach (Match match in matches)
            {
                Console.WriteLine(Regex.Match(match.Value, "[\u4e00-\u9fa5]+").Value);
            }
        }
    }
}
OrdinaryCoder 2019-05-13
  • 打赏
  • 举报
回复

static void Main(string[] args)
{

string json2 = @"{ 'MyArray': [ 'Manual text', '2000-05-23T00:00:00' ],'name':'HelenZhou' }";
JObject jsonObj = JObject.Parse(json2);
Console.WriteLine(jsonObj["name"].ToString());
Console.WriteLine(jsonObj.ToString());

}

  • 打赏
  • 举报
回复

            foreach (var row in JObject.Parse(value)["words_result"])
            {
                Console.WriteLine(row["words"].ToString());
            }

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧