首页 > 其他分享 >在Angular项目中如何读取json文件呢?

在Angular项目中如何读取json文件呢?

时间:2023-08-15 18:56:45浏览次数:33  
标签:读取 失敗 番号 更新 Angular json 入力 msg id

直接进入主题,我们的最终目得是要读取文件,那么首先我们需要先创建文件,

第一步:创建我们今天所需要在assets创建需要读取的文件Message.json,

如下:

[
    {
        "id": "E0001",
        "msg": "{0}の取得に失敗しました。"
    },
    {
        "id": "E0002",
        "msg": "更新に失敗しました。"
    },
    {
        "id": "E0003",
        "msg": "登録に失敗しました。"
    },
    {
        "id": "E0004",
        "msg": "削除に失敗しました。"
    },
    {
        "id": "E0005",
        "msg": "{0}の出力に失敗しました。"
    },
    {
        "id": "E0006",
        "msg": "{0}のインポートに失敗しました。"
    },
    {
        "id": "E0007",
        "msg": "自動トリアーシに失敗しました。"
    },
    {
        "id": "E0008",
        "msg": "{0}の取得に失敗しました。システム管理者に問い合わせてください"
    },
    {
        "id": "E0009",
        "msg": "{0}の登録に失敗しました。"
    },
    {
        "id": "E0010",
        "msg": "テンプレートファイルが存在しません。"
    },
    {
        "id": "E0011",
        "msg": "タイムアウトしました。"
    },

    {
        "id": "W0001",
        "msg": "正しいExcelファイルを選択してください。"
    },
    {
        "id": "W0002",
        "msg": "必須項目{0}が入力されていません。"
    },
    {
        "id": "W0003",
        "msg": "{0}が正しくありません。"
    },{
        "id": "W0004",
        "msg": "新しく登録された脆弱性情報はありません。"
    },
    {
        "id": "W0005",
        "msg": "管理番号が正しくありません。管理番号を修正し、再度インポートしてください。"
    },
    {
        "id": "W0006",
        "msg": "管理番号が空白のものがあります。管理番号を修正し、再度インポートしてください。"
    },
    {
        "id": "W0007",
        "msg": "管理番号が重複しています。管理番号を修正し、再度インポートしてください。"
    },
    {
        "id": "W0008",
        "msg": "管理番号{0}が重複しています。"
    },
    {
        "id": "W0009",
        "msg": "保存されていないCSイベントがあります。"
    },
    {
        "id": "W0010",
        "msg": "保存されていないイベント進捗があります。"
    },
    {
        "id": "W0011",
        "msg": "変更された項目がありません。"
    },
    {
        "id": "W0012",
        "msg": "削除できませんでした。"
    },
    {
        "id": "W0013",
        "msg": "更新できませんでした。"
    },
    {
        "id": "W0014",
        "msg": "該当する仕分けキーワードがありませんでした。"
    },
    {
        "id": "W0015",
        "msg": "他のユーザ({0})が先に更新しています。画面更新を行ってから、再入力をお願いします"
    },
    {
        "id": "W0016",
        "msg": "{0}に重複がありました。"
    },
    {
        "id": "W0017",
        "msg": "検索に一致する{0}がありませんでした。"
    },
    {
        "id": "W0018",
        "msg": "{0}が複数入力されています。"
    },
    {
        "id": "W0019",
        "msg": "{0}が全て入力されていません。"
    },
    {
        "id": "W0020",
        "msg": "統一キーワードに紐づく製品が既に登録されています。"
    },
    {
        "id": "W0021",
        "msg": "紐づく製品が存在しません。(統一キーワード:{0})"
    },
    {
        "id": "W0022",
        "msg": "該当する{0}がありません。"
    },
    {
        "id": "W0023",
        "msg": "統一キーワードがありません。"
    },
    {
        "id": "W0024",
        "msg": "入力内容が文字数制限を超えています。"
    },
    {
        "id": "W0025",
        "msg": "有効開始日は有効終了日を超えています。"
    },
    {
        "id": "W0026",
        "msg": "過去日付は入力できません。"
    },
    {
        "id": "C0001",
        "msg": "{0}の更新を行いますか?"
    },
    {
        "id": "C0002",
        "msg": "{0}の削除を行いますか?"
    },
    {
        "id": "C0003",
        "msg": "{0}の新規登録を行いますか?"
    },
    {
        "id": "C0005",
        "msg": "自動トリアージを行いますか?"
    },
    {
        "id": "C0006",
        "msg": "{0}をエクスポートします。よろしいですか?"
    },
    {
        "id": "C0007",
        "msg": "編集中の{0}があります。編集を破棄しますか?"
    },
    {
        "id": "I0001",
        "msg": "全件正常に取り込み完了しました。"
    },
    {
        "id": "I0002",
        "msg": "取り込み完了。取り込みに失敗した脆弱性情報があります"
    },
    {
        "id": "I0003",
        "msg": "新しく登録された脆弱性情報はありません。"
    },
    {
        "id": "I0004",
        "msg": "新しく登録された脆弱性情報はありません。取り込みに失敗した脆弱性情報があります。"
    },
    {
        "id": "I0005",
        "msg": "更新しました。"
    },
    {
        "id": "I0007",
        "msg": "削除しました。"
    },
    {
        "id": "I0008",
        "msg": "登録しました。"
    },
    {
        "id": "I0009",
        "msg": "更新しました。 変更を反映させる場合は更新ボタンを押してください。"
    },
    {
        "id": "I0010",
        "msg": "統一キーワードと紐づく製品を登録しました。"
    }
]

第二步:我们需要在services文件夹下创建一个共享サービス、之后把以下代码封装到共享サービス当中里去 

/*
 * @Author: 
 * @Date: 2021-06-08 15:38:47
 * @LastEditTime: 2022-03-16 11:04:56
 * @LastEditors: Please set LastEditors
 * @Description: 
 */

import { HttpClient } from '@angular/common/http';
import { Component, Injectable } from '@angular/core';
import { MessageInfo } from '../../model/MessageInfo';



@Injectable({
  providedIn: 'root'
})
export class MessageService {

  static messageInfo: MessageInfo[];
  constructor(
    private http:HttpClient
    ) { 

  }

  /**
   * @description: 
   * @param {*}
   * @return {*}
   */  
  load() {
    const jsonFile =  `assets/config-files/message.json`;
    return new Promise<void>((resolve, reject) => {
      return  this.http.get<MessageInfo[]>(jsonFile).toPromise().then((response) => {
          MessageService.messageInfo = response as MessageInfo[];
           resolve();
        }).catch((response: any) => {
           reject(`Could not load file '${jsonFile}': ${JSON.stringify(response)}`);
        });
    });

}

  static getMessage(id:string ,params?:string[]):string{
    var message:string="";
    for (let entry of this.messageInfo) {
      if(entry.id==id){
        var msg=entry.msg;
        if(params){
          for(var i=0;i<params?.length!;i++){
            msg=msg.replace("{"+i+"}",params![i]);
          }
        }
        return msg;
      }
    }
    return "";

  }

  /**
   * @description: メッセージ種別を取得
   * @param {string} メッセージid
   * @return {*} メッセージのモジュール
   */  
  static  getMessageType(id:string):any{
   
    var component:any;
  
    return component;
   
  }

  
}

 

最后在我们需要调用的方法里,调用我们在共享サービス创建的方法即可。

例如:

this.InformationinfoService.getAllDate().subscribe(
      res => {
        // 处理成功返回的数据
        console.log(res);
        this.rowData = res  as TestParms[]; 
        this.dateType = MessageService.getMessage("C0005",["お知らせ"]);
      },  
      (error) => {
        console.log('詮索に失敗しました', error);
        this.dateType = MessageService.getMessage("C0008",["お知らせ"]);
      },
     
        
    
      
    ) 

  

 

标签:读取,失敗,番号,更新,Angular,json,入力,msg,id
From: https://www.cnblogs.com/ZhuAo/p/17632151.html

相关文章

  • Asp.net WebAPI中Controller的方法在接受到json时序列化都为null的问题
    原因是,webapi默认不序列化字段,只序列化属性只需要把字段改成属性即可 ------------------改成---------------- ......
  • fastjson反序列化 TODO
    参考链接fastjson反序列化入门文章https://tttang.com/archive/1579/https://xz.aliyun.com/t/12096ASM动态加载相关,如何查看内存生成的类的源码https://juejin.cn/post/6974566732224528392#heading-6https://blog.csdn.net/wjy160925/article/details/85288569关闭ASM去......
  • 解析EFL文件中符号表读取
    符号表表头Linux中使用指令查看完整读取elf文件readelf-aexample.elfNum:ValueSizeTypeBindVisNdxName代表含义Num符号编号Value符号值,取决于上下文Size符号值Type符号类型,例如函数、对象、文件(源文件名称)、节(内存节)或未指定类型......
  • 关于Angular路由中CanActivateChild钩子的用法
    CanActivateChild和CanActivate的用法如出一辙,使用对象可能有所不同,例如说CanActivate一般的使用对象要么是兄弟平级关系,要么就是嵌套在CanActivateChild父级下的子路由。具体使用实例:constroutes:Routes=[{path:'home',component:HomeComponent,canActivateChild:[......
  • while读取文件 Shell中while循环的陷阱, 变量实效, 无法赋值变量
     在写while循环的时候,发现了一个问题,在while循环内部对变量赋值、定义变量、数组定义等等环境,在循环外面失效。一个简单的测试脚本如下:#!/bin/bashecho"abcxyz"|whilereadlinedonew_var=$linedoneechonew_varisnull:$new_var? 执行结果证明,$new_v......
  • Jackson解析JSON
    Jackson有三个核心包,分别是Streaming、Databind、Annotations,通过这些包可以方便的对JSON进行操作1.Streaming:在jackson-core模块。定义了一些流处理相关的API以及特定的JSON实现2.Annotations:在jackson-annotations模块,包含了Jackson中的注解3.Databind:在j......
  • 《angular 高级编程》学习集锦
    引用bootstrapnpminstallbootstrap在angular.json配置文件中,把关联的脚本文件添加到"scripts"数组中:最后再运行或重启ngserve,看看你的应用是否正在使用Bootstrap4。参考:https://angular.cn/guide/using-libraries......
  • 2024年秋招赛码网刷题-判断奇偶数、读取未给出行列数的矩阵
    1defis_even(n):2return1ifn%2==0else034n=int(input())56result=is_even(n)7print(result)#最后一行不能用return因为return只能在函数内部使用。在顶层代码中用return不合法 ......
  • JSON对象和字符串之间的相互转换
    比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象:1vara={"name":"tom","sex":"男","age":"24"};23varb='{"name":"Mike","sex":"女","age":"29......
  • json字符串转换对象或列表,多了字段不会报错
    json字符串转换对象或列表,多了字段不会报错//DEMO1转换对象应用riskIdpublicclassItem{privateStringid;privateStringrate;publicItem(Stringid,Stringrate){this.id=id;this.rate=rate;}@Overridepubl......